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)
}