概述
go 版本: go1.20.13
basic types
总结
基本类型如下:
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for uint8
rune // alias for int32
// represents a Unicode code point
float32 float64
complex64 complex128
int、uint、uintptr类型在 32 位系统上是 32位,在 64 位系统上是64位,当需要一个 int 数值时,应使用 int ,除非有理由需要使用无符号 int 类型。
例子
package main
import (
"fmt"
"math/cmplx"
)
var (
ToBe bool = false
MaxInt uint64 = 1<<64 - 1
z complex128 = cmplx.Sqrt(-5 + 12i)
)
func main() {
fmt.Printf("Type: %T Value: %v\n", ToBe, ToBe)
fmt.Printf("Type: %T Value: %v\n", MaxInt, MaxInt)
fmt.Printf("Type: %T Value: %v\n", z, z)
}
结果如下:
Zero values
总结
在没有显式初始值的情况下声明的变量将被赋予零值。
- 数字类型值为 0
- boolean 类型为 false
- 字符串为 “”
例子
package main
import "fmt"
func main() {
var i int
var f float64
var b bool
var s string
fmt.Printf("%v %v %v %q\n", i, f, b, s)
}
结果如下:
类型转换
总结
语法 T(v)
将 v
转成类型 T
// 标准写法
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
// 简写
i := 42
f := float64(i)
u := uint(f)
例子
package main
import (
"fmt"
"math"
)
func main() {
var x, y int = 3, 4
var f float64 = math.Sqrt(float64(x*x + y*y))
var z uint = uint(f)
fmt.Println(x, y, z)
}
结束
go 基础类型 至此结束,如有疑问,欢迎评论区留言。