go 學習筆記基礎篇(一)
阿新 • • 發佈:2020-09-22
golang
變數宣告
-
var 宣告單個變數
var 變數名稱 型別 變數名稱命名: a. 字母、數字、下劃線組成,首字母不能為數字 b. 變數名稱區分大小寫 c. 關鍵字 保留字不可作為變數名稱 d. 建議使用駝峰式命名,大寫表示公有(StudentAge),小寫表示私有(studentAge) e. 特有名詞根據是否私有全大寫或小寫 變數聲明後沒有初始化的話, 值為型別預設值 變數聲明後使用,同一個作用域不可重複宣告
-
變數初始化方式
-
先聲明後賦值
func main() { var a string a = "test" // 輸出變數型別 fmt.Printf("a=%v a的型別是%T", a, a) }
-
宣告同時賦值
func main() { var a string = "test" fmt.Printf("a=%v a的型別是%T", a, a) }
-
型別推導
func main() { var a = "test" fmt.Printf("a=%v a的型別是%T", a, a) }
-
-
一次宣告多個變數
func main(){ // 一次宣告多個變數 // var a, b, c = 10, 23, 46 var ( a int b string c string ) a = 30 b = "test" c = "hello" fmt.Printf("a=%v b=%v c=%v", a, b, c) }
-
短變數宣告法(只能宣告區域性變數)
變數名稱 := 初始值 短變數宣告一次宣告多個變數 a,b,c := 10,4,"test"
-
匿名變數
- 不佔用名稱空間,不存在重複宣告問題
- 當函式返回兩個值,但只需要使用其中一個值時,另一個返回值可用匿名變數接收
- "_"
常量 [const] 大寫
- 定義時必須賦值
const a = 10
- 常量的值不可改變
- const 同時宣告多個常量,如果只對第一個值賦值,則表示剩下為賦值常量值與第一個值保持一致
const ( a = 10 b c ) fmt.Println(a, b, c)
- const 和 iota 聯合使用
func main(){ const ( a = iota // 0 b // 1 c // 2 ) fmt.Println(a, b, c) const ( n1 = iota // 0 n2 = 100 // 100 插隊 n3 = iota // 3 可跳過 n4 // 4 ) fmt.Println(n1, n2, n3, n4) }
資料型別
基本資料型別
-
int 整型 預設int為int64 佔8個位元組
有符號整型
- int8 記憶體空間中佔1位元組 -128~127
- int16 2位元組
- int32 4位元組
- int64 8位元組
無符號整型
- uint8 0-255
- uint16
- uint32
- uint64
位元組:
1024Bety(位元組) = 1KB
可以通過unsafe.Sizeof(num) 檢視所佔位元組數
-
浮點型
- float32 佔4個位元組
- float64 佔8個位元組
浮點型格式化輸出 佔位符'%f'預設保留6位小數,4舍5入, 自定義保留小數位 例如:"%.2f"
-
布林型別 bool
Go 中布林型別 只有 true和false兩個值 注意: a. 布林型別變數的預設值為false b. Go 語言中不允許將整型強制轉換為bool型別 c. bool型別無法參與數值運算,也不可以和其他型別進行轉換
-
字串型別 string
- Go中字串需要使用雙引號
- 字串轉義符 \
- 多行字串用反引號 ``
- 一個字母佔一個位元組,一個漢字佔三個位元組
- 拼接字串可以使用 ‘+’號或者 使用 Sprintf 例如:str3 := fmt.Sprintf("%v %v", str1, str2)
- 使用 strings 做字串的常用操作
-
byte 和 rune型別 (字元)
- 字元屬於int 型
- 字元使用單引號
- golang 漢字使用utf8編碼, 編碼後的值是int型別
- unit8型別 也叫byte型別,代表ascii 碼的一個字元
- rune 型別 代表一個utf8字元,rune型別相容byte型別資料