匿名變數
複數型別
bool型別
字元型別
資料型別轉換
指標型別
常量iota常量生成器
字串與數值型別的轉換
var name type(type是型別)
bool
string
int、int8、int16、int32、int64
uint、uint8、uint16、uint32、uint64、uintptr
byte // uint8 的別名
rune // int32 的別名 代表乙個 unicode 碼
float32、float64
complex64、complex128
當乙個變數被宣告之後,系統自動賦予它該型別的零值:int 為 0,float 為 0.0,bool 為 false,string 為空字串,指標為 nil 等
變數的命名規則遵循駱駝命名法,即首個單詞小寫,每個新單詞的首字母大寫,例如:numships 和 startdate 。
名字 := 表示式 (前提是這個名字之前沒有被宣告過,要不然會報錯)
var hp = 100(可以省去int,直接賦值)
hp := 100(hp在次之前不能被宣告過)
在編碼過程中,可能會遇到沒有名稱的變數、型別或方法。雖然這不是必須的,但有時候這樣做可以極大地增強**的靈活性,這些變數被統稱為匿名變數。
匿名變數不占用記憶體空間,不會分配記憶體。匿名變數與匿名變數之間也不會因為多次宣告而無法使用。
go語言擁有兩種複數型別,分別是 complex64(32 位實數和虛數)型別和 complex128(64 位實數和虛數)型別。
布林值可以和 &&(and)和 ||(or)操作符結合
&& 的優先順序比||高(&& 對應邏輯乘法,|| 對應邏輯加法,乘法比加法優先順序要高)
byte型別是uint8的別名
unicode(utf-8),在書寫 unicode 字元時,需要在 16 進製數之前加上字首\u或者\u。因為 unicode 至少占用 2 個位元組,所以我們使用 int16 或者 int 型別來表示。如果需要使用到 4 位元組,則使用\u字首,如果需要使用到 8 個位元組,則使用\u字首。
unicode 與 ascii 類似,都是一種字符集。
不存在隱式型別轉換,因此所有的型別轉換都必須顯式的宣告
從乙個取值範圍小的轉換到取值範圍大的,要不然會導致精度丟失
valueoftypeb = typeb(valueoftypea)
型別 b 的值 = 型別 b(型別 a 的值)
乙個指標變數可以指向任何乙個值的記憶體位址,它所指向的值的記憶體位址在 32 和 64 位機器上分別占用 4 或 8 個位元組,占用位元組的大小與所指向的值的大小無關。當乙個指標被定義後沒有分配到任何變數時,它的預設值為 nil。指標變數通常縮寫為 ptr。
關鍵字const定義,用於儲存不會改變的資料,常量是在編譯時被建立的,即使定義在函式內部也是如此,並且只能是布林型、數字型(整數型、浮點型和複數)和字串型。由於編譯時的限制,定義常量的表示式必須為能被編譯器求值的常量表示式。
常量的值必須是能夠在編譯時就能夠確定的,可以在其賦值表示式中涉及計算過程,但是所有用於計算的值必須在編譯期間就能獲得。
iota 將會被置為 0
舉例:type weekday int
const (
sunday weekday = iota
monday
tuesday
wednesday
thursday
friday
saturday
)週日將對應 0,周一為 1,以此類推。
詳細舉例參照:
Go語言示例 3變數宣告
variables.go源 定義字串型別自變數。package main import fmt func main 解釋執行。go run variables.go initial variables.go源 定義整數型自變數。package main import fmt func main 解釋...
go語言變數的宣告與賦值
var 變數名 變數型別var a int b string c float32 d func bool e struct var a int var b string var c float32 var d func bool var e struct整型和浮點型變數的預設值為 0。字串變數的預設...
宣告變數 Go 語言設計哲學之七 變數宣告須一致
go 語言,使用變數之前需要先進行變數的宣告。var s string golang n 666go 語言有兩類變數 包級別 package varible 在 package 級別可見的變數。如果是匯出變數,該變數也可以被視為全域性變數 區域性變數 local varible 函式或方法體內宣告的...