# 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

# 字符串

  • string

# 强制转换类型

在 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) //A表示字符,i表示int
if err != nil {
return
}
fmt.Println(atoi, reflect.TypeOf(atoi))//12 int
}

# 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) //i表示int,a表示字符
fmt.Println(str, reflect.TypeOf(str))//12 string
}

# 字符串转 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))//3.1415 float64
}

# 字符串转 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)) //true bool
}

# 基本类型转字符串

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 to string
float_str := strconv.FormatFloat(3.14159, 'f', -1, 64)
fmt.Println(float_str, reflect.TypeOf(float_str))
//bool to string
bool_str := strconv.FormatBool(true)
fmt.Println(bool_str, reflect.TypeOf(bool_str))
}

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

colagold 微信支付

微信支付

colagold 支付宝

支付宝