標籤:狀態 複合 for迴圈 尋找 應用 使用 位置 範圍 printf函數
go語言聖經-範圍
1.一個聲明語句將程式中的實體和一個名字關聯,比如一個函數或一個變數
2.一個變數的生命週期是指程式運行時變數存在的有效時間段;聲明語句的範圍對應的是一個原始碼的文本地區,它是一個編譯時間的屬性
3.句法塊是由花括弧所包含;我們可以把塊(block)的概念推廣到包括其他聲明的群組,這些聲明在代碼中並未顯式地使用花括弧包裹起來,我們稱之為詞法塊。
4.全域範圍 包級文法域 源檔案級的範圍 局部範圍 函數級的範圍
5.從最內層的詞法域向全域的範圍尋找。內部的會覆蓋外部的,如果尋找失敗,則報告“未聲明的名字”這樣的錯誤
6.詞法域可以深度嵌套,因此內部的一個聲明可能屏蔽外部的聲明
7.隱式詞法域, 比如:for迴圈 函數體詞法域,一個在for隱式的初始化詞法域,一個在for迴圈體詞法域
8.Go語言的習慣是在if中處理錯誤然後直接返回,這樣可以確保正常執行的語句不需要代碼縮排。
9.要特別注意短變數聲明語句的範圍範圍,雖然變數在外部已經聲明過,但是:=語句還是將變數重新聲明為新的局部變數
避免出現類似潛在的問題,通過單獨聲明變數,來避免使用:=
go語言聖經-基礎資料類型
1.基礎類型、複合類型、參考型別和介面類型
2.基礎類型,包括:數字、字串和布爾型
3.複合資料型別——數組(§4.1)和結構體(§4.2)
4.參考型別包括指標(§2.3.2)、切片(§4.2))字典(§4.3)、函數(§5)、通道(§8),都是對程式中一個變數或狀態的間接引用
go語言聖經-整型
1.int8、int16、int32和int64四種截然不同大小的有符號整數類型
2.uint8、uint16、uint32和uint64四種不帶正負號的整數類型
3.有符號和不帶正負號的整數int和uint;其中int是應用最廣泛的數實值型別。這兩種類型都有同樣的大小,32或64bit
4.byte也是uint8類型的等價類別型,byte類型一般用於強調數值是一個原始的資料而不是一個小的整數
5.一種無符號的整數類型uintptr,沒有指定具體的bit大小但是足以容納指標
6.bit位操作運算子,& | ^ &^位清空 (AND NOT) <<左移 >>右移
7.使用了Printf函數的%b參數列印二進位格式的數字;其中%08b中08表示列印至少8個字元寬度,不足的首碼部分用0填充
&^是按位置零 x&^y 按y置零x ;x^y 異或在 |或的基礎上去掉兩個都為1的部分
8.傾向於使用有符號的int類型,uint無符號類型比如在迴圈時條件判斷處會出問題
9.無符號數往往只有在位元運算或其它特殊的運算情境才會使用
10.類型不符的問題,需要顯式類型轉換,將一個大尺寸的整數類型轉為一個小尺寸的整數類型,或者是將一個浮點數轉為整數,可能會改變數值或丟失精度
11.整數字面值都可以用以0開始的八進位格式書寫,例如0666,用以0x或0X開頭的十六進位格式書寫,例如0xdeadbeef
%d、%o或%x參數控制輸出的進位格式,%之後的[1]副詞告訴Printf函數再次使用第一個運算元,%後的#副詞告訴Printf在用%o、%x或%X輸出時產生0、0x或0X首碼,字元使用%c參數列印,或者是用%q參數列印帶單引號的字元
[日常] Go語言聖經--範圍,基礎資料類型,整型