本章介绍了命名,关键词,声明,赋值,类型,包,作用域等概念,但主要介绍的只是程序结构和声明。
Go 变量区分大小写 字母或下划线开头,推荐 驼峰式 命名,在一个包里,变量,常量,函数首字母大写,它将是导出的,例如fmt包的Printf函数就是导出方法。
Go 语言中有25个关键词:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
貌似其他语言也都差不多,部分不同。。
Go 有30多个预定义的名字的内建常量、类型和函数。
内建常量: true false iota nil
内建类型: int int16 int32 int64 int8
uint uint16 uint32 uint64 uint8 uintptr
float32 float64 complex128 complex64
bool byte error rune string
ComplexType FloatType IntegerType Type Type1
内建函数: make len cap new append copy close delete
complex real imag panic recover
print println
这里列出的比 go圣经 里多了几个类型和函数,不知道什么时候加的,具体查看 官方文档 。
目前就4个关键词用于声明,var 变量声明,const 常量声明,type 类型声明,func 函数声明。
变量声明的一般语法如下:
var 变量名字 类型 = 表达式
其中 “类型” 或 “= 表达式” 两个部分可以省略其中的一个。
var a int = 1 // 声明int型并初始化为 1
var b int // 声明int型,默认初始值为 0
var c = 2 // 根据值类型声明为int型初始化为 2
名字 := 表达式
变量类型根据表达式值自动推导。
要特别注意 :=
是声明, =
是赋值,不能搞混。
a := 1
b := "str"
c := a+1
其实也差不多,但是这里的指针比 c 的简单太多了,跟 php 的取地址差不多。
x := 1
p := &x
*p = 2
亮点在于可以同时赋值多个,函数也可以返回多个值,叫做 元组赋值。
变量 = 值
元组赋值 x, y = y, x
语法: type 类型名字 底层类型
type Celsius float64 // 摄氏温度
type Fahrenheit float64 // 华氏温度
为什么声明类型?除了可以意义化描述之外,还可以为自定义类型绑定方法(原生类型不可以)。
具体以后研究..
这个貌似跟 es6 类似,块级作用域,没一个 {} 中都是独立的域。。
在这里看到了 es6,php 的影子,相对而言语法还是比较简单易学的。继续加油。。