1.常量的定義
常量的值在編譯時(shí)就已經(jīng)確認(rèn)
常量的定義格式與變量基本相同
等號(hào)右側(cè)必須是常量或者常量表達(dá)式
常量表達(dá)式中的函數(shù)必須是內(nèi)置函數(shù)
//定義單個(gè)常量
const a int = 1
const b = "A"
const (
text = "123"
length = len(text)
num = b * 20
)
//同時(shí)定義多個(gè)變量
const i, j, k = 1, "2", "3"
const (
text2 ,length2, num2 = "456", len(text2), k* 10
)
2.常量的初始化規(guī)則
- 在定義常量組時(shí)烦磁,如果不提供初始值养匈,則表示使用上行的表達(dá)式
var a = 1
const (
b = a
//此時(shí)報(bào)錯(cuò),因?yàn)槿肿兞吭诰幾g時(shí)不能確定值都伪,常量必須是編譯時(shí)能確定值的或使用內(nèi)置函數(shù)獲得的值(eg:len())
)
const (
a = "A"
b
c
//此時(shí) a,b,c都為"A"
)
const (
a, b = 1, "A"
c, d
//a,c為1呕乎,b,d為"A"。此時(shí)注意下行的常量個(gè)數(shù)必須與上行數(shù)量保持一致
)
3.常量的枚舉
使用相同的表達(dá)式不代表具有相同的值
iota是常量的計(jì)數(shù)器陨晶,從0開始猬仁,組中每定義1個(gè)常量自動(dòng)遞增1
通過初始化規(guī)則與iota可以達(dá)到枚舉的效果
每遇到一個(gè)const關(guān)鍵字,iota就會(huì)重置為0
const (
a = "A"
b
c = iota
d //d的值為3,因?yàn)樵诔A拷M中湿刽,定義了4個(gè)變量所以iota計(jì)數(shù)器從0開始計(jì)數(shù)4次的烁,所以為3
)
4.運(yùn)算符
//優(yōu)先級(jí)從高到低
* / % << >> & &^
= - | ^
== != < <= >= >
&&
||
例子:
/*
6的二進(jìn)制:0110 第一個(gè)
10的二進(jìn)制:1011 第二個(gè)
---------
& 0010 = 2 (兩個(gè)都是1才為1)
| 1111 = 15 (一個(gè)是1就是1)
^ 1101 = 13 (兩個(gè)只有一個(gè)是1才是1)
$^ 0100 = 4 (第二個(gè)為1則是0,否則與第一位相同)
*/