文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从零开始学习 Go 数据类型:一份完整的指南

2023-09-03 16:37

关注

Go 是一门强类型语言,它的数据类型决定了程序的能力和表现。在本篇文章中,我们将从零开始学习 Go 的数据类型,包括基本数据类型、复合数据类型和自定义数据类型。

基本数据类型

Go 中的基本数据类型包括布尔型、数字型和字符串型。布尔型只有两个值:true 和 false。数字型包括整型和浮点型,其中整型又分为有符号整型和无符号整型,浮点型包括单精度浮点型和双精度浮点型。字符串型是 Unicode 字符序列,可以使用双引号或反引号表示。

下面是一些基本数据类型的演示代码:

package main

import "fmt"

func main() {
    var b bool = true
    fmt.Println(b)

    var i int = 123
    fmt.Println(i)

    var ui uint = 456
    fmt.Println(ui)

    var f float32 = 3.14
    fmt.Println(f)

    var d float64 = 3.1415926535
    fmt.Println(d)

    var s string = "Hello, world!"
    fmt.Println(s)
}

复合数据类型

Go 中的复合数据类型包括数组、切片、字典和结构体。数组是一组相同类型的值的集合,长度固定不变。切片是一个动态数组,长度可变,可以进行添加、删除和修改操作。字典是一组键值对的集合,键和值可以是任何类型。结构体是一组不同类型的值的集合,可以自定义字段名。

下面是一些复合数据类型的演示代码:

package main

import "fmt"

func main() {
    var a [3]int
    a[0] = 1
    a[1] = 2
    a[2] = 3
    fmt.Println(a)

    var b []int = []int{1, 2, 3}
    b = append(b, 4)
    fmt.Println(b)

    var c map[string]int = map[string]int{"a": 1, "b": 2, "c": 3}
    delete(c, "b")
    fmt.Println(c)

    type person struct {
        name string
        age int
    }

    var d person = person{name: "Alice", age: 18}
    fmt.Println(d)
}

自定义数据类型

Go 中的自定义数据类型包括结构体类型、接口类型和函数类型。结构体类型在上面的复合数据类型中已经介绍过了。接口类型是一组方法的集合,可以为不同类型的值提供统一的操作接口。函数类型是一种函数签名的别名,可以方便地传递函数作为参数或返回值。

下面是一些自定义数据类型的演示代码:

package main

import "fmt"

type animal interface {
    move() string
}

type cat struct {
    name string
}

func (c cat) move() string {
    return "cat " + c.name + " is moving"
}

type add func(int, int) int

func addFunc(x int, y int) int {
    return x + y
}

func main() {
    var a animal = cat{name: "Tom"}
    fmt.Println(a.move())

    var b add = addFunc
    fmt.Println(b(1, 2))
}

总结

在本篇文章中,我们介绍了 Go 的基本数据类型、复合数据类型和自定义数据类型,并演示了一些代码。学习数据类型是掌握 Go 编程的基础,希望本篇文章可以帮助你更好地理解 Go 的数据类型。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯