數(shù)據(jù)類型分類
基礎類型
- 數(shù)字
- 字符串
- 布爾型
復合類型
- 數(shù)組
- 結構體
引用類型
- 指針
- 切片
- 字典
- 函數(shù)
- 通道
接口類型
3.1 整型
有符號整數(shù)類型
- int、nt8、int16、int32、int64
- 值域:
到
無符號整數(shù)類型
- uint、uint8、uint16、uint32、uint64
- 值域:0到
Unicode字符rune類型
- = int32類型,表示一個Unicode碼點
byte類型
- = uint8類型,一般用于強調(diào)數(shù)值是一個原始的數(shù)據(jù)而不是一個小的整數(shù)
無符號整數(shù)類型 uintptr
- 沒有指定具體的bit大小但足以容納指針
- 底層編程時需要(如:與C語言函數(shù)庫或操作系統(tǒng)交互)
運算符
按照優(yōu)先級遞減的順序排序
| 操作符 | 備注 |
|---|---|
| * | 乘法 |
| / | 除法 |
| % | 取模 |
| << | 左移 ,該運算等價于乘以 |
| >> | 右移,該運算等價于除以 |
| & | 位運算 AND(與) 不區(qū)分有無符號 |
| &^ | 位清空(AND NOT)不區(qū)分有無符號 |
| + | 加法 |
| - | 減法 |
| | | 位運算 OR(或) 不區(qū)分有無符號 |
| ^ | 位運算 XOR(異或) 不區(qū)分有無符號 |
| == | 等于比較 |
| != | 不等于比較 |
| < | 大于 |
| <= | 大于等于 |
| > | 小于 |
| >= | 小于等于 |
| && | 邏輯運算“與” |
| || | 邏輯運算“或” |
3.2 浮點數(shù)
float32
- math.MaxFloat32 表示float32能表示的最大數(shù)值
float64
- math.MaxFloat64表示float64能表示的最大數(shù)值
3.3 復數(shù)
complex64
- 對應float32浮點數(shù)精度
complex128
- 對應float64浮點數(shù)精度
內(nèi)置函數(shù)
complex()
- 用于構建復數(shù)
real()
- 返回復數(shù)的實部
imag()
- 返回復數(shù)的虛部(浮點數(shù)面值或十進制整數(shù)面值后面加一個i)
math/cmplx 包提供各種函數(shù)
3.4 布爾型
布爾類型的值:true、false
- 布爾值不會隱式轉換為數(shù)字值0或1
3.5 字符串
- 字符串是一個不可改變的字節(jié)序列
- 字符串的值是不可變的
字符串面值
- 將一系列字節(jié)序列包含在雙引號內(nèi)
- 原生的字符串面值形式:
...
字符串和Byte切片
標準庫中的包:
- bytes
- strings:提供字符串的查詢、替換、比較、截斷、拆分、合并等功能
- strconv:提供布爾型、整數(shù)、浮點數(shù)和對應字符串的相互轉化
- unicode:提供IsDigit、IsLetter、IsUpper和IsLower等功能,用于給字符分類
字符串和數(shù)字的轉換
- 將整數(shù)轉為字符串:
- 1)用 fmt.Sprintf 返回一個格式化的字符串
- 2)strconv.Itoa("")
3.6 常量
- 常量表達式的值在編譯期計算
- 常量的值不可修改
itoa常量生成器
- 用于生成一組以相似規(guī)則初始化的常量