首页 > 文章列表 > 深入理解Go语言的数据类型

深入理解Go语言的数据类型

数据类型 go
196 2024-04-23

Go 语言的数据类型决定了变量可存储的数据类型和操作,包括基本数据类型(布尔、整数、浮点数、复数、字符串、rune、字节)和复合数据类型(数组、切片、映射、结构体、接口)。Go 语言支持隐式和显式类型转换,可使用语法 type castedValue := type(value) 显式转换。

深入理解Go语言的数据类型

深入理解 Go 语言的数据类型

简介

在 Go 语言中,数据类型决定了变量可以存储的数据类型和操作。理解 Go 语言的数据类型至关重要,因为它影响了程序的效率和安全性。

基本数据类型

  • 布尔型: true 或 false,表示布尔值
  • 整数: int、int8、int16、int32、int64,没有小数部分的整数
  • 浮点数: float32、float64,带小数部分的数字
  • 复数: complex64、complex128,由实部和虚部组成的数字
  • 字符串: UTF-8 编码的字符串
  • rune: 一个 UTF-32 代码点
  • 字节: 8 位无符号整数

复合数据类型

  • 数组: 固定长度的同类型数据元素集合
  • 切片: 可变长度的同类型数据元素集合,指向底层数组
  • 映射: 键值对集合
  • 结构体: 具有命名字段的关联数据集合
  • 接口: 定义一组方法的类型

类型转换

Go 语言支持隐式和显式类型转换。隐式转换发生在编译器自动执行时,例如赋值整数给浮点变量。显式转换需要使用以下语法:

type castedValue := type(value)

实战案例

以下是一个示例程序,展示 Go 语言数据类型的使用:

package main

import "fmt"

func main() {
    // 基本数据类型
    var b bool = true
    var i int = 10
    var f float64 = 3.14
    var s string = "Hello World"

    // 复合数据类型
    var a [5]int = [...]int{1, 2, 3, 4, 5}
    var slice []int = make([]int, 3)
    var m map[string]int = make(map[string]int)
    var st struct {
        name string
        age  int
    }

    // 类型转换
    var ft float32 = float32(f)

    // 打印结果
    fmt.Println(b, i, f, s)
    fmt.Println(a, slice, m, st)
    fmt.Println(ft)
}