运行:
pkg main 中的
main方法为执行入口

var 命名变量以及类型
:=可以快速赋值

关键代码:

// Fetchall fetches URLs in parallel and reports their times and sizes.
package mainimport ("fmt""io""io/ioutil""net/http""os""time"
)func main() {start := time.Now()ch := make(chan string)for _, url := range os.Args[1:] {go fetch(url, ch) // start a goroutine}for range os.Args[1:] {fmt.Println(<-ch) // receive from channel ch}fmt.Printf("%.2fs elapsed\n", time.Since(start).Seconds())
}func fetch(url string, ch chan<- string) {start := time.Now()resp, err := http.Get(url)if err != nil {ch <- fmt.Sprint(err) // send to channel chreturn}nbytes, err := io.Copy(ioutil.Discard, resp.Body)resp.Body.Close() // don't leak resourcesif err != nil {ch <- fmt.Sprintf("while reading %s: %v", url, err)return}secs := time.Since(start).Seconds()ch <- fmt.Sprintf("%.2fs  %7d  %s", secs, nbytes, url)
}

使用了 routine以及channel的性质
新建 ch := make(chan string)表示新建一个内部为string的channel
go func() 表示分配一个func任务到一个routine中并发执行
ch <-- fmt.Sprint() 将打印出的内容输出到channel中
<-- ch 表示将channel内容输出到目的地,代码中为println

每一个routine 往 channel send 或者 receive时,会阻塞在调用处,等待另一个routine send or receive

控制流:
if else
switch

命名类型:
指针:存储了变量的内存地址的数据类型,&返回内存地址,*返回指针指向的变量内容;无指针运算
func API
package:标准库之类的

go指针:
主要有两个核心概念
1 切片,指向起始元素的指针+目前元素数量+容量组成
2 类型指针,允许对这个指针类型的数据进行修改,传递数据可以直接使用指针,无须copy数据;不进行偏移或者运算

T = $ variable 表示变量variable的内存地址为T(字符串"x00210"类似的地址字符串)
*T 表示其指向的变量 ( T字符串包含的地址指向的就是variable)
*就是指针

*操作符作为右值时,意义是取指针的值,作为左值时,也就是放在赋值操作符的左边时,表示 a 指针指向的变量

【go语言圣经】 初识 go相关推荐

  1. go channel 缓冲区最大限制_GO语言圣经学习笔记(八)Goroutines和Channels

    奋斗鸭!Day97 知识点 goroutinue 基本用法 golang非常深度的简化了goroutinue的使用方法,异常简单,门槛降低很多 // goroutinue 使用非常简单go f() G ...

  2. 《Go语言圣经》学习笔记 第十一章 测试

    <Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...

  3. 《Go语言圣经》学习笔记 第十章 包和工具

    <Go语言圣经>学习笔记 第十章 包和工具 目录 包简介 导入路径 包声明 导入声明 包的匿名导入 包和命名 工具 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. G ...

  4. 《Go语言圣经》学习笔记 第九章 基于共享变量的并发

    <Go语言圣经>学习笔记 第九章 基于共享变量的并发 目录 竞争条件 sync.Mutex互斥锁 syn.RWMutex读写锁 内存同步 syn.Once初始化 竞争条件检测 示例:并发的 ...

  5. 《Go语言圣经》学习笔记 第八章 Groroutines和Channels

    <Go语言圣经>学习笔记 第八章 Groroutines和Channels 目录 Goroutines 实例:并发的Clock服务 实例:并发的Echo服务 Channels 并发的循环 ...

  6. 《Go语言圣经》学习笔记 第六章 方法

    <Go语言圣经>学习笔记 第六章 方法 目录 方法声明 基于指针对象的方法 通过嵌入结构体来扩展类型 方法值和方法表达式 示例:Bit数组 封装 注:学习<Go语言圣经>笔记, ...

  7. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

  8. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

  9. 《Go语言圣经》学习笔记 第三章 基础数据类型

    <Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...

  10. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

最新文章

  1. 《Flex 3程序设计》——Adobe技术专家力作
  2. EMetaBlob类分析
  3. 2022年跨境卖家如何布局海外市场?东南亚“钱”景可观
  4. php中生成标准uuid(guid)的方法
  5. FPGA资源评估方法
  6. L2-012. 关于堆的判断-PAT甲级真题(堆的建立,向上调整)
  7. “阿里云核心竞争力”峰会首日中奖小伙伴名单公布!机械键盘等豪礼下午继续放出!...
  8. EnvironmentPlugin 一款用来配置可动态切换App环境的Gradle插件
  9. unity3d补间动画DoTween
  10. 大规模额外涨薪后,Intel又准备了24亿美元,明年再涨工资!
  11. 2022-2028全球针织捆包网行业调研及趋势分析报告
  12. C++计算圆柱体的表面积
  13. HyperLynx(十六)PCI-E的设计与仿真
  14. Eclipse更改皮肤
  15. 抛物线与双曲线、抛物面与锥面
  16. eclipse离线安装PMD(含PMD离线包)
  17. 网件路由器使用计算机mac,网件路由器怎么ip与mac绑定(2)
  18. scrapy 项目实战(一)----爬取雅昌艺术网数据
  19. etc apdu指令
  20. 《系统集成项目管理工程师》必背100个知识点-68招投标流程

热门文章

  1. 植物大战 快速 排序——纯C
  2. mfd是什么格式文件
  3. 随笔之《决战大数据》
  4. 小学一年级语文考试试题【16、17】
  5. 计算机英语之编程,计算机英语(编程词汇大全)
  6. 三招打造团队合作精神
  7. “爱情”和“技术”,你会选择哪个?
  8. cocos2dx掼蛋_cocos2dx游戏开发——别踩白块学习笔记(一)——Block类
  9. 第五组用户使用情况报告
  10. 四阶代数余子式怎么求_已知四阶行列式,试求A41+A42与A43+A44,其中A4j(j=1,2,3,4)是D4中第4行第j个元素的代数余子式. - 搜题宝...