Go的常亮
關鍵字: Const
Go常亮的多個定義:
// 定義常亮的關鍵字 const
// 定義多個常亮
const(
PI = 3.14
const1 = "1"
const2 = 2
const3 = 3
)
全局變量的聲明與指派:
var (
name = "wyc"
name1 = 1
name2 = 2
name3 = 3
)
一般類型聲明:
type (
newType int
type1 float32
type2 string
type3 byte
)
Go的基本類型:
布爾型:
- 長度 1位元組
- 取值範圍: true、false
- 注意事項: 不可以使用數字來代表true或false
整型: int/uint
- 根據運作平台可能為32或64位
8位整型: int8/uint8
- 長度: 1位元組
- 取值範圍: -128~127 / 0~255
位元組型: byte(uint8别名)
16位整型: int/uint16
- 長度: 2位元組
- 取值範圍: -32768~32767 / 0~65535
32位整型: int32(rune) int32/uint32
- 長度: 4位元組
- 取值範圍: -2^64/2~2^64/2-1/0~2^64-1
64位整型:
- 長度 8位元組
- 取值範圍: -2^64/2~2^64/2-1/0~2^64-1
浮點型: float32 / float64
- 長度: 8/8字元
- 小數位: 精确到7/15小數位
複數類型: complex64/complex128
- 長度: 8/16位元組
足夠儲存指針的32位或64位整數型: uintptr
// 其他值類型:
- array、 struct、string
// 引用類型:
- slice、map、chan
// 接口函數 : inteface
// 函數接口 : func
類型零值:
零值并不等于空值,而是當變量聲明為某種來興後的預設零值,通常情況下預設值為0,bool為false,string為空字元串。
類型别名:
type(
byte int8
rune int32
文本 string
)
别名:
var a 文本
b = "你好中國"
零值:
package main
import (
"fmt"
)
func main() {
var a int
fmt.Println(a)
}
// 結果: 0
math包
math包可以檢查類型是否超出範圍
math.Min 記錄了一個最小值和一個最大值
int型的最小值:
math.MinInt8 int類型的最小值就會列印出來, -128
類型聲明
package main
import (
"fmt"
)
// 類型的定義
type (
byte int8
rune int32
文本 string
)
func main() {
var a 文本
a = "你好中國"
fmt.Println(a)
}
// 在實際應用中最好還是不要使用中文,它有可能會引起一些不必要的錯誤。
單個變量的聲明與指派 and 多個變量的聲明與指派
單個變量:
單個變量的聲明格式: var <變量名稱> <變量類型>
變量的指派的格式 : <變量名稱> = <表達式>
變量聲明的同時指派 : var <變量名稱> <變量類型> = [表達式]
多個變量 :
全局變量的聲明格式: var <變量名稱> <變量類型>
全局變量的聲明不可以省略 var, 但可使用并行方式
所有變量都可以使用類型推斷
局部變量不可以使用 var() 的方式簡寫,隻能使用并行方式
var (
// 正常方式
aaa = "hello"
// 使用并行方式以及類型推斷
w,y,c = 11,22,33
// ccc := 3 // 不可以省略 var
)
多個變量:
// 多個變量聲明
var a,b,c,d int
// 多個變量指派
a,b,c,d = 1,2,3,4
// 多個變量聲明的同時指派
var w,y,c int = 1,2,3
// 省略變量類型,由系統推斷類型
var w,y,c = 1,2,3
// 多個變量的聲明與指派的最簡的寫法
w,y,c := 11,22,33
package main
import (
"fmt"
)
func main() {
// var w,y,c int
// w,y,c = 1,2,3
w,y,c := 11,22,33
fmt.Println(w,y,c)
}
// 下劃線可以表示不需要的元素
package main
import (
"fmt"
)
func main() {
w,_,c := 11,22,33
fmt.Println(w,c)
}
變量的類型轉換
Go中不存在隐式轉換,所有類型轉換必須顯示聲明。
轉換隻能發生兩種互相相容的類型之間
類型轉換的格式:
<Value>[:] = <TypeOfValueA> (<ValueB>)
package main
import (
"fmt"
)
func main() {
var a float32 = 1.1
b := int(a)
fmt.Println(b)
}