编程笔记 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程序中构建复杂的抽象,并实现高效的内存管理和类型安全。

小结

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

相关推荐
爱吃KFC的大肥羊1 分钟前
C++三大特性之“继承”
开发语言·c++
毕设源码-李学长7 分钟前
计算机毕业设计java高校多媒体教室管理系统高校多媒体教室综合管理系统高校智能多媒体教室管理平台
java·开发语言·课程设计
先知后行。16 分钟前
线程的创建.销毁
开发语言·c++·算法
鱼嘻21 分钟前
西嘎嘎学习 - C++ 继承 - Day 10
开发语言·c++·学习·算法
孤廖26 分钟前
从 “模板” 到 “场景”,用 C++ 磨透拓扑排序的实战逻辑
开发语言·c++·程序人生·算法·贪心算法·动态规划·学习方法
我有火的意志35 分钟前
Liunx执行source /etc/profile 报错, -bash: HISTTIMEFORMAT: readonly variable
开发语言·bash·histtimeformat·readonly
Sally璐璐1 小时前
Go语言开发工具全解析
网络·golang
蒋星熠1 小时前
中间件架构设计与实践:构建高性能分布式系统的核心基石
开发语言·数据库·分布式·python·中间件·性能优化·硬件工程
枫叶丹41 小时前
【Qt开发】显示类控件(二)-> QLCDNumber
开发语言·qt
励志不掉头发的内向程序员1 小时前
STL库——AVL树
开发语言·c++·学习