本章介绍了命名,关键词,声明,赋值,类型,包,作用域等概念,但主要介绍的只是程序结构和声明。
命名
Go 变量区分大小写 字母或下划线开头,推荐 驼峰式 命名,在一个包里,变量,常量,函数首字母大写,它将是导出的,例如fmt包的Printf函数就是导出方法。
关键词
Go 语言中有25个关键词:
1 | break default func interface select |
貌似其他语言也都差不多,部分不同。。
内建类型及函数
Go 有30多个预定义的名字的内建常量、类型和函数。
1 | 内建常量: true false iota nil |
这里列出的比 go圣经 里多了几个类型和函数,不知道什么时候加的,具体查看官方文档。
声明
目前就4个关键词用于声明,var 变量声明,const 常量声明,type 类型声明,func 函数声明。
变量
变量声明的一般语法如下:
1 | var 变量名字 类型 = 表达式 |
其中 “类型” 或 “= 表达式” 两个部分可以省略其中的一个。
1 | var a int = 1 // 声明int型并初始化为 1 |
简短变量声明
语法:名字 := 表达式
变量类型根据表达式值自动推导。
要特别注意 :=
是声明,=
是赋值,不能搞混。
1 | a := 1 |
指针
其实也差不多,但是这里的指针比 c 的简单太多了,跟 php 的取地址差不多。
1 | x := 1 |
赋值
亮点在于可以同时赋值多个,函数也可以返回多个值,叫做 元组赋值。
1 | 变量 = 值 |
类型
语法:type 类型名字 底层类型
1 | type Celsius float64 // 摄氏温度 |
为什么声明类型?
除了可以意义化描述之外,还可以为自定义类型绑定方法(原生类型不可以)。
包
具体以后研究..
作用域
这个貌似跟 es6 类似,块级作用域,没一个 {} 中都是独立的域。。
小结
在这里看到了 es6,php 的影子,相对而言语法还是比较简单易学的。
继续加油。。