当前位置:首页 > 科技  > 软件

掌握Go语言的基本数据类型:编程世界的ABC

来源: 责编: 时间:2024-06-11 17:51:31 88观看
导读Go语言,以其简洁的语法和强大的性能,已经成为现代软件开发领域中的重要力量。在Go语言的丰富特性中,基本数据类型扮演着至关重要的角色。它们是构建复杂程序的基础,是每一个Go程序的起点。正如学习任何新语言一样,了解其字

Go语言,以其简洁的语法和强大的性能,已经成为现代软件开发领域中的重要力量。在Go语言的丰富特性中,基本数据类型扮演着至关重要的角色。它们是构建复杂程序的基础,是每一个Go程序的起点。正如学习任何新语言一样,了解其字母表(ABC)是掌握语言的关键第一步。在Go语言中,这意味着要熟悉其提供的基本数据类型。N1e28资讯网——每日最新资讯28at.com

Go语言提供的基本数据类型

Go语言的基本数据类型可以分为以下几个类别:N1e28资讯网——每日最新资讯28at.com

  1. 整型:包括不同大小和符号的整数,如 int, int8, int16, int32, int64 和 uint 等。
  2. 浮点型:用于表示实数,包括 float32 和 float64。
  3. 布尔型:表示逻辑值 true 或 false。
  4. 字符串:用于表示文本数据,是一个不可变的字符序列。
  5. rune 类型:代表一个 Unicode 码点,等同于 int32。
  6. byte 类型:是 uint8 的别名,常用于表示字节。

int

定义int类型N1e28资讯网——每日最新资讯28at.com

var int1 = 1fmt.Printf("int1类型:%T/n", int1)

输出结果:N1e28资讯网——每日最新资讯28at.com

int1类型:int

注意:%T 查看变量的类型N1e28资讯网——每日最新资讯28at.com

进制转化

var i1 = 101fmt.Printf("%d/n", i1) //转成十进制fmt.Printf("%b/n", i1) //把十进制转成二级制fmt.Printf("%o/n", i1) //把十进制转成八进制fmt.Printf("%x/n", i1) //把十进制转成十六进制fmt.Println("-----")

输出结果:N1e28资讯网——每日最新资讯28at.com

数值为:101把十进制转成二级制:1100101把十进制转成八进制:145把十进制转成十六进制:65

定义八进制

八进制一定是以0开头的,逢八进一位N1e28资讯网——每日最新资讯28at.com

i2 := 077fmt.Printf("i2十进制:%d/n", i2)fmt.Printf("i2八进制:%o/n", i2)fmt.Printf("i2类型%T/n",i2)

输出结果N1e28资讯网——每日最新资讯28at.com

i2十进制:63i2八进制:77i2类型int

定义十六进制

从0到f,逢十六进一N1e28资讯网——每日最新资讯28at.com

i3 := 0x1234567fmt.Printf("i3十进制:%d/n", i3)fmt.Printf("i3十流进制:%x/n", i3)// %T 查看变量的类型fmt.Printf("i3十进制数据类型:%T/n", i3)

输出结果N1e28资讯网——每日最新资讯28at.com

i3十进制:19088743i3十六进制:1234567i3十进制数据类型:int

总结:我们发现直接定义十进制、八进制、十六进制的变量,变量的类型都是int型。N1e28资讯网——每日最新资讯28at.com

抛出问题

我们怎么定义int8/int16/int32/int64类型的数据呢?N1e28资讯网——每日最新资讯28at.com

其实非常简单:N1e28资讯网——每日最新资讯28at.com

i4 := int8(1)i5 := int16(1)i6 := int32(1)i7 := int64(1)fmt.Printf("i4:%T/n", i4)fmt.Printf("i5:%T/n",i5)fmt.Printf("i6:%T/n",i6)fmt.Printf("i7:%T/n",i7)

输出结果:N1e28资讯网——每日最新资讯28at.com

i4:int8i5:int16i6:int32i7:int64

抛出问题:go有这么多种int类型,我们怎么选择使用哪种呢?N1e28资讯网——每日最新资讯28at.com

给出答案:N1e28资讯网——每日最新资讯28at.com

我们首先要知道这些类型的区别:N1e28资讯网——每日最新资讯28at.com

  • int8类型大小为 1 字节
  • int16类型大小为 2 字节
  • int32类型大小为 4 字节
  • int64类型大小为 8 字节
  • int类型的大小为 4个字节 或者 8个字节

其中int类型要重点说一下:go语言中的 int 的大小是和操作系统位数相关的,如果是32位操作系统,int 类型的大小就是4字节。如果是64位操作系统,int 类型的大小就是8个字节。N1e28资讯网——每日最新资讯28at.com

由此我们可以知道,根据自己需要的字节数来选择,当然选择int类型是最省心安全的,但是当我们取值范围小的时候,会浪费存储空间。N1e28资讯网——每日最新资讯28at.com

float

go中的float可以细分为:float32和float64N1e28资讯网——每日最新资讯28at.com

定义float

f1 := 1.0fmt.Printf("f1类型:%T/n", f1) // Go语言中的小数默认类型是:float64

输出结果:N1e28资讯网——每日最新资讯28at.com

f1类型:float64

分析:在未指定类型定义float时,默认的类型是float64。和int类型的定义是一致的。N1e28资讯网——每日最新资讯28at.com

反思:这种设计我们也可以很好理解,出于数据安全的考虑,设置数据类型对应的最大内存空间的类型,避免内存溢出等问题。N1e28资讯网——每日最新资讯28at.com

定义float32类型

聪明的你一定会想到,和定义int8是一样的N1e28资讯网——每日最新资讯28at.com

f2 := float32(1.4321)fmt.Printf("%T/n", f2)

输出结果:N1e28资讯网——每日最新资讯28at.com

f2类型:float32

小技巧

我们可以通过内置的Math函数,获得常用的数值,比如:N1e28资讯网——每日最新资讯28at.com

var maxFloat = math.MaxFloat32;println(maxFloat)

输出结果:N1e28资讯网——每日最新资讯28at.com

+3.402823e+038

注意

在go中,数据类型是有严格的区分的,不同类型之间是不能互相转换的,比如:N1e28资讯网——每日最新资讯28at.com

N1e28资讯网——每日最新资讯28at.com

转载本文请联系「王中阳Go」公众号。N1e28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-93088-0.html掌握Go语言的基本数据类型:编程世界的ABC

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Excel不再复杂:Python与xlwings的黄金组合

下一篇: C++ 首度超越 C 语言仅次榜首 Python,TIOBE 编程指数六月排行榜公布

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    在上个月举办的Redmi Note11T Pro系列新机发布会上,除了两款手机新品之外,Redmi还带来了两款TWS真无线蓝牙耳机产品,Redmi Buds 4和Redmi Buds 4 Pro,此前我们在Redmi Note11T
  • 十个可以手动编写的 JavaScript 数组 API

    十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 2023 年的 Node.js 生态系统

    2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • Golang 中的 io 包详解:组合接口

    Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • 从 Pulsar Client 的原理到它的监控面板

    从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 当家的盒马,加速谋生

    当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己“当家”的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 到手价3099元起!iQOO Neo8 Pro今日首销:安卓性能最强旗舰

    到手价3099元起!iQOO Neo8 Pro今日首销:安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
Top
Baidu
map