Go语言数据类型

一、基本数据类型

  • 布尔型
值: true 或者 false
  • 数字类型
整型、浮点型
- 整型
  uint8        无符号         8位(0 ~ 2^8)
  uint16       无符号         16位(0 ~ 2^15)
  uint32       无符号         32位(0 ~ 2^31)
  uint64       无符号         64位(0 ~ 2^63)
  int8         有符号         8位(-2^7 ~ 2^7-1)
  int16        有符号         16位(-2^15 ~ 2^15-1)
  int32        有符号         32位(-2^31 ~ 2^31-1)
  int64        有符号         64位(-2^63 ~ 2^63-1)

- 浮点型
  float32      IEEE-754    32位浮点型数
  float64      IEEE-754    64位浮点型数

- 其他
  byte        uint8别名
  rune        int32别名
  uint32      64位
  • 字符串类型
字符串:一串固定长度的字符连接起来的字符序列。
编码: UTF-8
  • 派生类
  指针类型(Pointer)
  数组类型
  结构类型(Struct)
  Channel类型
  函数类型
  切片类型
  接口类型(interface)
  Map类型

二、字符串相关介绍

  • 字符串和其余类型转换
string转int: int, err := strconv.Atoi(string)
string转int64: int64, err := strconv.ParseInt(string, 10, 64)
int转string: string := strconv.Itoa(int)
int64转string: string := strconv.FormatInt(int64, 10)

只读的Unicode字节序列,Go语言使用UTF-8格式编码Unicode字符,每个字符对应一个rune类型。英文占1字节,中文占3字节。

使用range迭代字符串时,range迭代的是Unicode而不是字节。返回的两个值,第一个是被迭代字符的UTF-8编码的第一个字节在字符串中的索引,第二个值为对应的字符且类型为rune

const s = "Go语言"
for i, v := range s {
    fmt.Printf("%#U : %d\n", v, i)
}

输出:
U+0047 'G': 0
U+006F 'o': 1
U+8BEF '语': 2
U+8A00 '言': 5

你可能感兴趣的:(Go语言数据类型)