1. 程式人生 > >[日常] Go語言聖經--作用域,基礎數據類型,整型

[日常] Go語言聖經--作用域,基礎數據類型,整型

作用 表示 聖經 異或 基礎 局部變量 寬度 新聲 數組

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語言聖經--作用域,基礎數據類型,整型