文件名
- 小写字母组成,多个小写字母通过下划线_分隔
- 不包含空格或其他特殊字符
标识符
- 无效标识符
- 数字开头
- Go的关键字
- 运算符
- 区分大小写
- 空白标识符_
- 可用于变量声明或赋值
- 任何赋值给这个标识符的值都将被抛弃
- 匿名变量
- 关键字
- 预定义标识符
- 大小写可见性规则
- 大写字母开头,函数/变量可以被外部包调用,遵循Pascal命名法
- 小写字母开头,函数/变量只能在内部包调用,遵循驼峰命名法
包
- 每个程序都由包组成
- package main表示一个可独立执行的程序
- 包使用小写字母命名
- 是编译的最小单位
如果对一个包进行更改或重新编译,所有引用这个包的客户端都必须全部重新编译
- 通过import关键字导入包
标准库
Go安装目录下可直接使用的包
- 存放在$GOROOT/pkg/$GOOS_$GOARCH/目录下
函数
- func funcName()
注释
跟Java一样
类型转化
- 必须显式说明,Go不存在隐式的类型转化
valueOfTypeB = typeB(valueOfTypeA)
复制代码
常量
- 通过const关键字定义,用于存储不会改变的数据
const identifier [type] = value
复制代码
- 可用于枚举类型
const (
Unknown = 0
Female = 1
Male = 2
)
复制代码
- iota
const (
a = iota
b = iota
c = iota
)
复制代码
第一个iota等于0,每当iota在新的一行被使用时,它的值都会自动加1,每次遇到const关键字,都会重置为0
变量
- 变量声明形式
var identifier type
复制代码
- 声明包级别的全局变量
var (
HOME = os.Getenv("HOME")
USER = os.Getenv("USER")
GOROOT = os.Getenv("GOROOT")
)
复制代码
- 在函数体内声明局部变量
a := 1
复制代码
- 变量命名规则 - 驼峰命名法
- Go编译器可以在编译时根据变量的值,自动推断其类型
- 值类型,引用类型
- init函数初始化变量
- 不能手动调用,在每个包完成初始化后自动执行,执行优先级高于main函数
- 每个源文件只能包含一个init函数
- init函数单线程执行,按照包的依赖关系顺序执行
func init() {
// init() function
}
复制代码
入门教程推荐: github.com/Unknwon/the…