go

u013115610 · · 799 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

变长参数 nums …int

格式化:
在命令行输入 gofmt –w program.go 会格式化该源文件的代码然后将格式化后的代码覆盖原始内容(如果不加参数 -w 则只会打印格式化后的结果而不重写文件);gofmt -w *.go 会格式化并重写所有 Go 源文件;gofmt map1 会格式化并重写 map1 目录及其子目录下的所有 Go 源文件。

格式化:gofmt 也可以通过在参数 -r 后面加入用单引号括起来的替换规则实现代码的简单重构,规则的格式:<原始内容> -> <替换内容> 例如 gofmt -r ‘(a) -> a’ -w .go, gofmt -r ‘a[n:len(a)] -> a[n:]’ –w .go,

c1 := make(chan int) 无缓存 放入第一个值就会发生阻塞。
c2 := make(chant int, 1) 有缓存,大小为1.放入第二个值才会阻塞。

一个双向通道可以直接赋值给一个单向通道
命名函数只能在包级别的作用域声明,在函数域声明一个函数需要使用函数字面量/匿名函数
select在多个通道上监听IO操作,即case后面只能是IO操作。如果某个case后面的通道发生了通信,它就有可能执行。如果有多个case可以执行,会随机选择一个执行,其他的不会执行。即所有的case子句都会得到判断,再进行选择。
在执行select语句的时候,运行时系统会自上而下地判断每个case中的发送或接收操作是否可以被立即执行(立即执行:意思是当前Goroutine不会因此操作而被阻塞)


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:u013115610

查看原文:go

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

799 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传