變量
- 變量:存儲數據,臨時性
- 數字,字母,下劃線,首個字母不能爲數字
變量聲明
1 未初始化的標準格式
var 變量名 變量類型
var s string
2 未初始化的批量格式
func main() {
var(
b int
a string
c float32
)
fmt.Println(a,b,c)
}
整形和浮點型變量默認值:0
字符串默認值爲空字符串
布爾值默認值爲false
函數,指針變量初始值爲null
3 初始化變量的標準格式
var 變量名 類型 = 表達式
4 編譯器具有自動推斷類型格式(非靜態語言運行時,才知道表達式是什麼數據類型)
vat 變量名 = 表達式
5初始化變量的簡短聲明格式(短變量聲明格式)
表達式 := 表達式
使用:=賦值操作符, :=可以高效的創建一個新的變量,稱之爲初始化聲明
省略了var關鍵字
變量類型由編譯器自動推斷
聲明變量的首選形式,只能作用在函數體內部,不可以用於全局變量的聲明與賦值
該變量名必須是沒有定義過的變量,至少有一個新聲明的變量出現在左側中,那麼即便有其他變量名可能是重複聲明的,編譯器也不會報錯
匿名變量
匿名變量(當定義了變量之後不使用會報錯,主要用於函數返回值上)
go語言的函數可以返回多個值,而事實上我們並不是對所有的返回值都用得上
那麼就可以使用匿名變量,用"_"替換掉之前的變量
匿名變量不佔用命名空間
不會分配內存
e, _ := "a", "b"
基本數據類型
布爾型
數字類型
字符創類型
派生類型
1. 指針
2. 數組
3. 結構化
4. Channel
5. 函數
6. 切片
7. 接口
8. Map
布爾型的值只可以是常量true或者false
===================================
整形
uint8 2的8次方
uint16 2的16次方
uint32 2的32次方
uint64 2的64次方
int8 -128到127
int16 -32768到32767
int32 -2147483648到2147483647
int64 -9223372036854775808到9223372036854775807
==================================
浮點型
float32 32位浮點型數
float64 64位浮點型數
complex64 32位實數和虛數
complex128 64位實數和虛數
==================================
byte
var a byte = 'a'
其實就是uint8的別名,代表了ASCLL碼的一個字符
rune
var b rune = '一'
其實就是int32,代表一個utf-8字符,當需要處理中文等unicode字符集是需要用到rune型
常量
常量是一個簡單值的標識符,在程序運行時,不會被修改的量。
常量中的數據類型只可以是布爾型、數字型(整數型、浮點型和複數)和字符串型。
1. 顯式類型定義: const b string = "abc"
2. 隱式類型定義: const b = "abc"
3. 多個可以簡寫爲:const c_name1, c_name2 = value1, value2
常量定義枚舉
const (
java = iota
python
php
golang
)
fmt.Println(java,python,php,golang)
0 1 2 3
還可以參與運算
const (
java = 1 << (10 * iota)
python
php
golang
)
fmt.Println(java,python,php,golang)
}
1 1024 1048576 1073741824