go語言學習-iota和右移的用法
阿新 • • 發佈:2018-12-22
在go語言中iota比較特殊,是一個被編譯器修改的常量,在每一個const關鍵字出現時被重置為0,然後在下一個const出現之前,每出現一次iota,其所代表的數字就會自動加1
左移運算子”<<”是雙目運算子。左移n位就是乘以2的n次方。 其功能把”<<”左邊的運算數的各二進位全部左移若干位,由”<<”右邊的數指定移動的位數,高位丟棄,低位補0。
右移運算子”>>”是雙目運算子。右移n位就是除以2的n次方。 其功能是把”>>”左邊的運算數的各二進位全部右移若干位,”>>”右邊的數指定移動的位數。
package iota
import "fmt"
func Test() {
const(
c1 = iota //c1=0
c2 = iota //c2=1
c3 = iota //c3=2
)
fmt.Println("c1 = ",c1," c2 = ",c2," c3 = ",c3,"\n")
const(
a = 1 << iota //a = 1
b = 1 << iota //b = 2
c = 1 << iota //c = 4
)
fmt.Println("a = " ,a," b = ",b," c = ",c,"\n")
const(
v1 = iota //v1 = 0
v2 //v2 = 1
v3 //v3 = 2
)
fmt.Println("v1 = ",v1," v2 = ",v2," v3 = ",v3,"\n")
const(
x = 1 <<iota //x = 1
y //y = 2
z //z = 4
)
fmt.Println("x = " ,x," y = ",y," z = ",z)
}
程式碼執行結果和上面註釋相同: