行分隔符:
Go语言中,一行代表一个语句结束,不需要以分号“;”结尾,如果需要在一行写多个语句,则每个语句需要使用分号进行区分,不鼓励这样做。
注释:
// 单行注释
/*
多行注释
*/
标识符:
标识符名称由 字母/数字/下划线 组成,开头第一个字母必须是字母或者下划线,标识符不能与关键字/保留字相同。
关键字/保留字:
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 语言还有 36 个预定义标识符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
| println | real | recover | string | true | uint | uint8 | uintptr |
Go语言中定义的数据类型:
类型 | 描述 | ||||||||||||||||||||||||||||||||||||
布尔型 | 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 | ||||||||||||||||||||||||||||||||||||
数字类型 | 整型 int 和浮点型 float,Go 语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码。
| ||||||||||||||||||||||||||||||||||||
字符串类型 | 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本。 | ||||||||||||||||||||||||||||||||||||
派生类型 |
|
声明变量:
使用默认值赋值变量:var v_name v_type
根据赋值自动判断变量类型:var v_name = value
定义的同时进行赋值:var v_name v_type = value
使用“:=”进行定义,省略var关键字,注意“:=”左侧的变量名不能为已声明的变量名,不需要指定变量类型:v_name := value
例如:
var a int;
var b = 3;
var c int = 3;
d := 4
var { //这种写法一般用于全局变量声明
e int
f bool
}
var g, h, i int = 1, 2, 3;
j, k := 10, "abc";
交换变量:
var a, b int = 3, 5; // a = 3, b = 5
a, b = b, a; // a = 5, b = 3
空白标识符(“_”):
空白标识符用于抛弃值,例如 _ , b = 1, 2; 执行后,b的值为2,1被抛弃。
空白标识符是一个只写变量(不能读),所以不能得到它的值。这么设计的原因是Go语言中必须使用所有被声明的变量,但是有时你不需要使用一个函数的所有返回值,这种情况下需要使用空白标识符来占位,例如:
func main() {
var _, b =getError();
fmt.Println(b);
}
func getError() (int, string) {
var errorNumber int = 1;
var errorMsg string = "Thisis an error";
return errorNumber, errorMsg;
}
如果我们不使用某个声明的变量(例如注释掉上面的fmt.Println(b)),则会报以下错误:
D:\Programming\GoWork>go run HelloWorld.go
# command-line-arguments
.\HelloWorld.go:12: b declared andnot used
常量定义:
const identifier [type] = value
例如:
const a string = "abc"
const a = "abc"
const a, b = 1, 2
定义枚举:
const (
Unknown = 0
Female = 1
Male = 2
)
iota是一个特殊常量,用于递增const常量的值(由于默认const类型的值不会递增)。iota的特性:
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
例如:
const (
Unknown =iota
Female =iota
Male = iota
)
const (
Success =iota
Failure =iota
Exception =iota
Others =iota
)
const (
TestA = 10
TestB
TestC
)
func main() {
fmt.Println(Unknown, Female, Male) // output: 0 1 2
fmt.Println(Success, Failure, Exception, Others) // output: 0 1 2 3
fmt.Println(TestA, TestB, TestC) // output: 10 10 10
}
再看一个例子:
func main() {
const (
a =iota //0
b //1
c //2
d ="ha" //独立值,iota += 1
e //"ha" iota += 1
f =100 //iota +=1
g //100 iota +=1
h =iota //7,恢复计数
I //8
)
fmt.Println(a,b,c,d,e,f,g,h,i) // 0 1 2 ha ha 100 100 7 8
}