初级会员
  • 第 16490 位会员
  • icexin
  • fanbingxin
  • 2018-03-02 10:41:19
  • Offline
  • 23 36

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

最近的评论

  • ``` cmd := "..." exec.Command("bash", "-c", cmd) ```
  • #13 @taatcc 匿名有时候跟`字面量`是等价的,常见的是结构体字面量 ``` go type Book struct{ title string price int } book := Book { title : "Go in action", price: 100, } ``` 等号右边的就是Book结构体字面量 匿名函数是函数的字面量表示,还有用`map[string]int{}`, `[]int`分别代表字典和slice的字面量。其实就是不用跟具体名字绑定。 其余的你可以探索一下。
  • `type`用来定义类型 `var`用来定义变量 `type 类型名 类型` 如`type NewInt int` `var 变量名 类型` 如`var count int` 所以 ``` go var Book struct{ title string price int } ``` 定义了一个名字为`Book`的结构体,其类型是struct那一坨,但一般不这样做,通常会先定义一个结构体类型,再定义一个对应的变量 ``` go type Book struct{ title string price int } var book Book ``` 匿名类型其实我们一直在用,只不多没有注意到罢了,比如平时使用的`var x interface{}`里面的`interface{}`就是一个匿名空接口,跟下面代码等价 ``` go type EmptyInterface interface { } var x EmptyInterface ```
  • 指针是对指向内容的引用,不是对指针变量的引用
  • 加锁主要是为了复用写日志的内存buffer,减轻内存压力,每条日志一次buffer申请只会加重内存分配器和gc的负担。另外你是怎么测试的,所有协程调完Printf之后就算结束了?如果是这样的话,日志都还在channel里面。按理来说都是串行写入,差别没有那么大。