编程笔记 Golang基础 014 数据类型概述

编程笔记 Golang基础 014 数据类型概述

Go 语言的数据类型系统涵盖了基本数据类型、复合数据类型以及引用类型。

下面将对这些类型进行详细说明:

一、基本数据类型

  1. 布尔型 (bool) :表示逻辑值,仅有两个可选值 truefalse

    go 复制代码
    var isTrue bool = true
    var isFalse bool = false
  2. 整数型

    • 有符号整数:int8、int16、int32(通常对应C中的short)、int64(通常对应C中的long long)。
    • 无符号整数:uint8(等同于byte)、uint16、uint32、uint64。
    go 复制代码
    var i int8 = -128 // 最小值为-128,最大值为127
    var u uint32 = 4294967295 // 最大值为 2^32 - 1
  3. 浮点型

    • float32:32位IEEE-754浮点数。
    • float64:64位IEEE-754浮点数,这是Go中默认的浮点数类型。
    go 复制代码
    var f float32 = 3.14159265 // 浮点数
    var pi float64 = math.Pi // 使用math库中的π常数
  4. 复数型

    • complex64:由两个32位浮点数(实部和虚部)组成。
    • complex128:由两个64位浮点数组成。
    go 复制代码
    var c complex64 = 3 + 4i // 复数
  5. 字符串 (string):不可变的字符序列,使用UTF-8编码。

    go 复制代码
    var s string = "Hello, World!" // 字符串

二、复合数据类型

  1. 数组 (array):固定长度的同类型元素集合,其长度在声明时必须确定。

    go 复制代码
    var a [5]int // 声明一个包含5个整数的数组
  2. 切片 (slice):动态大小的、灵活的数组视图,它不拥有底层数据,而是指向底层数组的一个片段。

    go 复制代码
    var s []int = make([]int, 0, 5) // 创建一个初始长度为0,容量为5的整数切片
  3. 结构体 (struct):用户自定义的数据类型,可以包含多个成员,每个成员可以是不同类型的变量。

    go 复制代码
    type Person struct {
        Name string
        Age  int
    }
    var p Person
    p.Name = "Alice"
    p.Age = 30
  4. 接口 (interface):定义了一组方法签名,任何实现了这些方法的类型都实现了该接口。

    go 复制代码
    type Writer interface {
        Write(p []byte) (n int, err error)
    }
    
    type MyWriter struct {}
    func (w MyWriter) Write(p []byte) (n int, err error) { ... }

三、引用类型

  1. 指针 (pointer):存储变量内存地址的类型,允许直接操作内存中的值。

    go 复制代码
    var x int = 10
    var p *int = &x // 指针p指向变量x的地址
    *p = 20        // 通过指针修改x的值
  2. 函数类型 (function type):可以像其他任何类型一样声明和赋值,允许作为参数传递或从函数返回。

    go 复制代码
    func add(a, b int) int {
        return a + b
    }
    
    var myFunc func(int, int) int = add
  3. 通道 (channel):用于并发编程的通信机制,用于goroutine之间的同步和数据传输。

    go 复制代码
    ch := make(chan int) // 创建一个int类型的通道
    go func() {
        ch <- 42 // 向通道发送一个值
    }()
    value := <-ch // 从通道接收一个值
  4. 映射 (map):关联键值对的数据结构,键和值可以是任意类型。

    go 复制代码
    m := make(map[string]int)
    m["apple"] = 10
  5. 错误类型 (error):虽然不是内置类型,但error是一种广泛使用的接口类型,用于表示运行时错误。

四、特殊类型

  1. 空接口 (interface{}):不包含任何方法的接口,它可以容纳任何类型的值。

以上是对Go语言主要数据类型的详解。通过这些类型,开发者可以在Go程序中构建复杂的抽象,并实现高效的内存管理和类型安全。

小结

数据类型需要通过实际应用来深入掌握。在后续内容中将逐步展开。

相关推荐
lingchen190611 分钟前
MATLAB图形绘制基础(一)二维图形
开发语言·算法·matlab
朝新_22 分钟前
【EE初阶】JVM
java·开发语言·网络·jvm·笔记·算法·javaee
Reggie_L38 分钟前
RabbitMQ -- 保障消息可靠性
开发语言·后端·ruby
何中应1 小时前
如何截取PDF内容为图片
java·开发语言·后端·pdf
边洛洛1 小时前
next.js项目部署流程
开发语言·前端·javascript
爱幻想-hjyp2 小时前
【Python】uv包管理器常用命令
开发语言·python·uv
哈皮Superman2 小时前
【Research】MagicFuzzer: Scalable deadlock detection for large-scale applications
java·开发语言·数据库
绛洞花主敏明2 小时前
Gorm(六)错误处理 & RowsAffected
golang
lly2024062 小时前
NoSQL 简介
开发语言
千里马-horse2 小时前
Boost.Iostreams 简介
开发语言·c++·boost