1.常量的定義
1)常量的值再編譯時就已經確定
2)常量的定義格式與變量基本相同
3)等號右側必須是常量或者常量表達式
4)常量表達式中的函數必須是內置函數
例如:
//定義單個常量
const a int = 1
const b = 'A'
const (
text = "123"
length = len(text)
num = b * 20
)
//同時定義多個變量
const i, j, k = 1, "2", '3'
const (
text2, length2, num2 = "456", len(text2), k*10
)
代碼實例:
package main
import (
"fmt"
"math"
)
//定義常量
const str = "acvfrttt"
func main() {
//定義常量
const a, b = 3, 5
var c int
c = int(math.Sqrt(a*a + b*b))
fmt.Println(str, c)
}
輸出:
API server listening at: 127.0.0.1:28132
123 5
2.常量的初始化規則與枚舉
1)在定義常量組時,如果不提供初始值,則表示將使用上行的表達式
2)使用相同的表達式不代表具有相同的值
3)iota是常量的計數器,從0開始,組中每定義一個常量自動遞增1
4)通過初始化規則與iota可以達到枚舉的效果
5)每遇到一個const關鍵字,iota就會重置爲0
例如:
const (
//a與b的值都爲“A”
a = "A"
b
c = iota
d //d的值爲3
)
const (
e = iota
f //f的值爲1
)
//星期枚舉
const (
//第一個常量不可省略表達式
Monday = iota //iota是自增值
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
//B, KB, MB, GB, TB, PB
const (
B = 1 << (10 * iota)
KB
MB
GB
TB
PB
)
代碼實例:
package main
import (
"fmt"
)
//B, KB, MB, GB, TB, PB
const (
B = 1 << (10 * iota)
KB
MB
GB
TB
PB
)
//星期枚舉
const (
//第一個常量不可省略表達式
Monday = iota //iota是自增值
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
func main() {
fmt.Println(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)
fmt.Println(B, KB, MB, GB, TB, PB)
}
輸出:
API server listening at: 127.0.0.1:6247
0 1 2 3 4 5 6
1 1024 1048576 1073741824 1099511627776 1125899906842624
3.運算符
Go中的運算符均是從左至右結合。
優先級:
1)^ ! (一元運算)
2)* / % << >> & &^
3)+ - | ^ (二元運算)
4)== != < <= >= >
5)<- (專門用於channel)
6)&&
7)||
4.遞增遞減語句
在Go當中,++與--是作爲語句而不是作爲表達式