本文从较小的颗粒度记录我在golang学习中的点滴。
命名
任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的名字用小写,并且GO语言拥护骆驼命名法,排斥下划线命名法。(Java和C#是官方推荐骆驼法的,C语言主要使用下划线命名法)
格式化代码工具
写完代码后可以执行 go fmt hello.go
编译器会调整语句位置,花括号位置,以制表符缩进代码,添加必要的空格。
go语言导库
我们在go语言中可以导入GitHub中的包。在go build 之前go get github.com/mytesam/xxx 就能完成安装
单引号,双引号
在go语法中,双引号是常用的来表达字符串,如果你使用了单引号,编译器会提示出错
invalid character literal (more than one character)
单引号只能包含一个字符,例如’a’ ,程序会输出97表示字符a的ascii码。
如果非要使用单引号输出必须使用string函数转换
fmt.Println(string('a') )
Printf 和 Println 的区别
printf 输出后不换行, println输出后自动换行;
printf格式化输出,println 直接输出内容
导包和定义变量
在golang中,倒入的包和定义的变量都必须被引用,否则编译器会报错,这点不同于python,在python 中引入的包和定义的变量即使没有被使用解释器也不会报错。
赋值时的下划线
_, b = 5, 7
在上面的语句中,5这个值被丢弃。在golang中一个值被赋予下划线表示被丢弃
golang中字符串
字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。
go语言缩进
go语言默认缩紧为tab,不同于python,后者推荐使用空格。
编译部署
go是编译型语言,并且可以在一个平台上编译多个平台的版本,我们称之为交叉编译。