# bool
值为 false
或者 true
# 数值型
# 整数
int
- int8:-2^7 (-128) 到 2^7 - 1 (127)
- int16:-2^15 (-32,768) 到 2^15 - 1 (32,767)
- int32:-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647)
- int64:-2^63 (-9,223,372,036,854,775,808) 到 2^63 - 1 (9,223,372,036,854,775,807)
uint
- uint8 (byte):0 到 2^8 - 1 (255)
- uint16:0 到 2^16 - 1 (65,535)
- uint32 (rune):0 到 2^32 - 1 (4,294,967,295)
- uint64:0 到 2^64 - 1 (18,446,744,073,709,551,615)
# 浮点
- float32:约 ±3.402823e+38
- float64:约 ±1.797693e+308
# 字符 (存储编码)
- byte:类型是
uint8
的类型。通常用于表示原始的二进制数据,如文件、网络数据等。 - rune:
int32
的别名,用于表示 Unicode 码点。可以表示 Unicode 字符集中的任何字符,包括中文、日文等。
# 复数
- complex64:实部和虚部都是
float32
- complex128:实部和虚部都是
float64
# 字符串
# 强制转换类型
在 go 中没有隐式转换,只能自己手动强制转换,否则无法编译
1 2 3
| var a float64 var b int32 a=float64(b)
|
- 以上方法不能跨大类型转换,比如不能对 int (float) 和 string 进行互转
- 如果使用了
type 别名 类型名
,则不能使用 类型名(变量)
进行转换,只能使用 别名(变量)
。比如:
1 2 3 4
| var a int=5 type IT int var b IT=int(a) var c IT=IT(a)
|
# 字符串转 int
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package main
import ( "fmt" "reflect" "strconv" )
func main() { var str string = "12" atoi, err := strconv.Atoi(str) if err != nil { return } fmt.Println(atoi, reflect.TypeOf(atoi)) }
|
# int 转字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package main
import ( "fmt" "reflect" "strconv" )
func main() { var in int = 12 str := strconv.Itoa(in) fmt.Println(str, reflect.TypeOf(str)) }
|
# 字符串转 float32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package main
import ( "fmt" "reflect" "strconv" )
func main() { var f string = "3.1415" fl, err := strconv.ParseFloat(f, 64) if err != nil { return } fmt.Println(fl, reflect.TypeOf(fl)) }
|
# 字符串转 bool
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package main
import ( "fmt" "reflect" "strconv" )
func main() { var bo string = "true" parseBool, err := strconv.ParseBool(bo) if err != nil { return } fmt.Println(parseBool, reflect.TypeOf(parseBool)) }
|
# 基本类型转字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package main
import ( "fmt" "reflect" "strconv" )
func main() { float_str := strconv.FormatFloat(3.14159, 'f', -1, 64) fmt.Println(float_str, reflect.TypeOf(float_str)) bool_str := strconv.FormatBool(true) fmt.Println(bool_str, reflect.TypeOf(bool_str)) }
|