bool:表示布林值,只有 true 和 false
uint:平台相關的無符號整數uint8:8 位無符號整數uint16:16 位無符號整數uint32:32 位無符號整數uint64:64 位無符號整數int:平台相關的整數型別int8:8 位有符號整數int16:16 位有符號整數int32:32 位有符號整數int64:64 位有符號整數float32:32位浮點數float64:64位浮點數complex64:由兩個 float32 組成的複數complex128:由兩個 float64 組成的複數byte:uint8 別名rune:int32 別名string:表示一串 Unicode 字符序列+:加法-:減法*:乘法/:除法%:取餘數&:位元 AND|:位元 OR^:位元 XOR<<:左位移>>:右位移==:等於!=:不等於<:小於>:大於<=:小於等於>=:大於等於&&:邏輯 AND||:邏輯 OR!:邏輯 NOT&:取址,用於取得變數記憶體位址*:指標,用於取得變數記憶體位址的值算數
package main
import (
"fmt"
"math"
)
const pi = 3.14 // 常數 // math.Pi
func main() {
n1 := 10 // 自動推斷 "int"
n2 := int64(10) // 使用強制轉型
max := math.Max(float64(10), float64(20))
r := float32(5)
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(max) // 20
fmt.Println(pi * r * r) // 78.5
}
iota 常數產生
package main
import "fmt"
func main() {
const (
Sunday = iota // 0
Monday // 1(自動遞增)
Tuesday // 2(自動遞增)
Wednesday // 3(自動遞增)
Thursday // 4(自動遞增)
Friday // 5(自動遞增)
Saturday // 6(自動遞增)
)
fmt.Println("Days of the week:")
fmt.Println("Sunday:", Sunday)
fmt.Println("Monday:", Monday)
fmt.Println("Tuesday:", Tuesday)
fmt.Println("Wednesday:", Wednesday)
fmt.Println("Thursday:", Thursday)
fmt.Println("Friday:", Friday)
fmt.Println("Saturday:", Saturday)
}
注意溢位 (Overflow),程式會正常執行不會引發錯誤
package main
import "fmt"
func main() {
var nums byte = 255
fmt.Println(nums) // 255
fmt.Println(nums + 1) // 0
}
字串
package main
import (
"fmt"
"strconv"
)
func main() {
s := "string"
length := len(s) // 取得長度
fmt.Println(length) // 6
fmt.Println(s[1:]) // "tring"
var c byte = s[0]
fmt.Println(c) // 115
// 字串轉數字
fmt.Println(strconv.Atoi("20")) // 20 <nil>
// 多行字串
s2 := `line 1
line 2`
fmt.Println(s2)
}