go 語言學習筆記 0001 iota

2022-04-01 10:39:51 字數 773 閱讀 1515

go語言中預置了乙個預定義常量 iota

這個東西有個很奇怪的特性,會根據 const 關鍵字改變值

預設的,iota在const出現的時候會初始化為0,而後不斷遞加1,直到出現第二個const關鍵字

const (

countagn1 = 2 << iota // 2 0

countagn2 = 2 << iota // 4 2

countagn3 = 2 << iota // 8 6

)// 00010 上面的計算結果:iota 不是遞加然後加上常量值,而是遞加位數,在常量值的二進位制數字基礎上左移

const (

countagn4 = 3 << iota // 3 0 3*2^0

countagn5 = 3 << iota // 6 1 3*2^1

countagn6 = 3 << iota // 12 2 3*2^2

)// 00011 所以,口算iota的計算結果,直接在iota的基礎上乘以2的iota次方

func main()

// out

countagn1 2

countagn2 4

countagn3 8

countagn4 3

countagn5 6

countagn6 12

結論都寫在**裡了,iota對常量的影響並不是相加,而是在常量的二進位制數值上進行對應的位移(>>也是可以的),那麼由於二進位制的表示方式,每位移一次,就是乘以2,所以,常量會以2的iota次方變化。

go語言學習筆記

type info struct func main fmt.println info1 data,json.marshal info1 fmt.println string data 輸出 這裡要特別注意的是 json 冒號後面和雙引號之間千萬不要有空格!被坑慘了 go語言 import的包的前面...

Go語言 學習筆記

import 下劃線 如 import hello imp 的作用 當匯入乙個包時,該包下的檔案裡所有init 函式都會被執行,然而,有些時候我們並不需要把整個包都匯入進來,僅僅是是希望它執行init 函式而已。這個時候就可以使用 import 引用該包。即使用 import 包路徑 只是引用該包,...

Go語言學習筆記

一.go程式開發注意事項 go原始檔以 go 為副檔名。go應用程式的執行入口是main 函式。go語言干戈區分大小寫。go方法由一條條語句構成,每個語句後不需要分號 go語言會在每行後自動加分號 這也體現出golang的簡潔性。go編譯器是一行行進行編譯的,因此我們一行就寫一條語句,不能把多條語句...