目录

data_types


数据类型 data types

Go 有四类数据类型:

  1. 基本类型:数字、字符串和布尔值
  2. 聚合类型:数组和结构
  3. 引用类型:指针、切片、映射、函数和通道
  4. 接口类型:接口

1 整数数字

int uint int8 uint8 int16 uint16 int32 uint32 int64 uint64

var integer8 int8 = 127
var integer16 int16 = 32767
var integer32 int32 = 2147483647
var integer64 int64 = 9223372036854775807

fmt.Println(integer8, integer16, integer32, integer64)
var integer16 int16 = 127
var integer32 int32 = 32767
var res := integer16 + integer32
invalid operation: integer16 + integer32 (mismatched types int16 and int32)
rune 只是 int32 数据类型的别名, 它用于表示 Unicode 字符

2 浮点数字

float32 float64

var float32 float32 = 2147483647
var float64 float64 = 9223372036854775807
fmt.Println(float32, float64)
package main

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.MaxFloat32, math.MaxFloat64)
}

3 布尔型

bool true false 不能将布尔类型隐式转换为 0 或 1

var flag bool = true

4 字符串

你需要在双引号(")中定义值。 单引号(’)用于单个字符(以及 runes)

var firstName string = "John"
lastName := "Doe"
fmt.Println(firstName, lastName)

4.1 转义字符

\n:新行
\r:回车符
\t:制表符
\':单引号
\":双引号
\\:反斜杠

5 默认值

与在其他编程语言中不同的是,在 Go 中,如果你不对变量初始化,所有数据类型都有默认值。 此功能非常方便,因为在使用之前,你无需检查变量是否已初始化。

int 类型的 0(及其所有子类型,如 int64) float32 和 float64 类型的 +0.000000e+000 bool 类型的 false string 类型的空值

6 类型转换

在 Go 中隐式强制转换不起作用, 需要显式强制转换, Go 提供了将一种数据类型转换为另一种数据类型的一些本机方法。

var integer16 int16 = 127
var integer32 int32 = 32767
fmt.Println(int32(integer16) + integer32)

Go 的另一种转换方法是使用 strconv 包

package main

import (
    "fmt"
    "strconv"
)

func main() {
    i, _ := strconv.Atoi("-42") // alpha to int
    s := strconv.Itoa(-42) // int to alpha
    fmt.Println(i, s)
}