Golang,开车上路。

2017年1月29日,开始学习 golang, 一边学习一边做笔记。

 

◆ Golang 的开发环境非常容易搭建,双击安装包安装后,设置一个系统变量即可。

设置系统变量

 

安装 go 1.8 以上版本,则连这个系统变量也不用设置,默认 %USERPROFILE%\go 为 workspace, 因此,只要在 %USERPROFILE% 里新建文件夹 go/src 即可。

 

◆ 利用当前时间来做随机数的种子。

利用当前时间来做随机数的种子。

 

◆ 教程里说:

nil map has no keys, nor can keys be added.

但是没有给出具体的例子,于是我做了以下试验:

var m map[string]int // 构建一个空map
m["abc"] = 123       // 对空map添加key
fmt.Println(m)

结果,果然运行出错 panic: assignment to entry in nil map

这里 https://blog.golang.org/go-maps-in-action 有更详细的说明。

 

◆ 把 byte 转换为 string

  正确的方法是先把 byte 转换为 int, 再使用 strconv.Itoa 函数。

 

一开始我尝试使用 string(int) 来转换,但是不对,没想到这样做其实是把 code points 转换为 Unicode 字符,详细说明参阅:https://golang.org/ref/spec#Conversions

 

◆ A Tour of Go, Exercise: Readers

  在官方答案里,是这样定义这个method的:

func (r MyReader) Read(b []byte) (int, error)

  但是我发现变量 r 根本没有被调用,尝试不要这个变量,即:

func (MyReader) Read(b []byte) (int, error)

  果然,这样也是可以的。

 

◆ goland 的语法比较严格,如下面这个例子所示, struct 的最后一个元素与大括号之间如果有换行,则需要逗号,否则编译出错。不换行则不需要逗号。

 

◆ 声明时自动计算 array 长度

a := [...]string{"Penn", "Teller"} // len(a) is 2

  

 

(本文档随着我一边学习一边更新)

posted @ 2017-02-08 12:27  AHUI-2017  阅读(384)  评论(0编辑  收藏  举报