说明:
长度是指占用的内存资源
零值是指默认值

捕获.PNG

1.1布尔类型

  1. var b1 bool = true
  2. b2 := (1==1) //b2会被自动推导为bool类型
  1. //错误示例
  2. var b bool
  3. b = 1 //编译报错
  4. b = bool(1) //编译报错

1.2整型

  1. var i int = 1
  2. j := 2 //自动推导为2

1.3浮点型

  1. var i float32 = 3.14 //go语言中没有float类型
  2. j := 33.0 //如果不加小数点,会被自动推导为int,
  3. //加小数点,自动推导float64(为了确保计算精度)

1.4字符类型

在go语言中,支持两个字符类型
一个是:byte(uint8的别名),代表utf-8字符串的单个字节的值
另一个是:rune,代表单个 unicode字符

  1. package main
  2. import "fmt"
  3. func main() {
  4. var ch1, ch2, ch3 byte
  5. ch1 = 'a' //字符赋值
  6. ch2 = 97 //字符的ascii码赋值,也是a
  7. ch3 = '\n' //转义字符(换行符)
  8. fmt.Printf("ch1 = %c, ch2 = %c, %c", ch1, ch2, ch3)
  9. }

运行结果:
捕获.PNG

1.5字符串

  1. package main
  2. import "fmt"
  3. func main(){
  4. var str = "This is string"
  5. var ch = str[0] //go也可以进行类似于python的切片
  6. fmt.Println(str)
  7. fmt.Println(string(ch)) //如不进行强制转换,输出的值为84('T'的ascii码)
  8. }

运行结果:
捕获.PNG

1.6复数类型

复试实际上是由两个实数(在计算机中用浮点数)构成,一个是实部(real),一个是虚部(imag)

  1. package main
  2. import "fmt"
  3. func main(){
  4. var c1 complex64 //由两个float32构成的复数形式
  5. c1 = 3.2 + 5.7i
  6. c2 := 5.6 + 79i //为了确保精度,自动推导为complex128
  7. c3 := complex(5.6, 79) //结果同c2
  8. fmt.Println(c1, c2, c3)
  9. //内置函数real()可以获得该复数的实部
  10. //内置函数imag()可以获得该复数的虚部
  11. fmt.Println(real(c1),imag(c1))
  12. }

运行结果:
捕获.PNG