Go语言编程教程-基本数据类型

这篇具有很好参考价值的文章主要介绍了Go语言编程教程-基本数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

课程要点

  1. 了解布尔类型
  2. 了解整数类型
  3. 了解浮点数类型
  4. 了解复数类型
  5. 了解字符串类型
  6. 了解字符类型

布尔类型

类型 名称 取值范围 说明
bool 布尔类型 truefalse 默认值为false

示例

ok := true
println(ok)

整数类型

类型 名称 取值范围 说明
uint8 8位无符号整型 0~255
uint16 16位无符号整型 0~65535
uint32 32位无符号整型 0~4294967295
uint64 64位无符号整型 0~18446744073709551615
int8 8位有符号整型 -128~127
int16 16位有符号整型 -32768~32767
int32 32位有符号整型 -2147483648~2147483647
int64 32位有符号整型 -9223372036854775808~9223372036854775807
int 有符号整型 32位系统同int32,64位系统同int64 类型大小随操作系统的位数而定,是整数字面量的默认类型
uint 无符号整型 32位系统同uint32,64位系统同uint64 类型大小随操作系统的位数而定
uintptr 指针类型 32位系统同uint32,64位系统同uint64 用于描述指针的地址,类型大小同uint类似
byte 字节类型 uint8 int8的别名,用于描述字节
rune 字符类型 int32 int32的别名,用于描述单个字符

上述整数类型默认值都为0,其中uintptrbyterune是特殊用途的整数类型,
在整数类型的基础上赋予了额外的语义,使其具有更加强大的功能,后续会进行更加深入的解析和应用。

示例

var uint8N uint8 = 255
println(uint8N)

var uint16N uint16 = 65535
println(uint16N)

var uint32N uint32 = 4294967295
println(uint32N)

var uint64N uint64 = 18446744073709551615
println(uint64N)

var int8N int8 = 127
println(int8N)

var int16N int16 = 32767
println(int16N)

var int32N int32 = 2147483647
println(int32N)

var int64N int64 = 9223372036854775807
println(int64N)

var intN int = 1
println(intN)

var uintN uint = 1
println(uintN)

var uintptrN uintptr = 1
println(uintptrN)

var byteN byte = 255
println(byteN)

var runeN rune = '中'
println(runeN)

浮点数类型

类型 名称 取值范围 说明
float32 32位浮点数类型 -math.MaxFloat32~math.MaxFloat32 默认值为0
float64 64位浮点数类型 -math.MaxFloat64~math.MaxFloat64 默认值为0,是小数字面量的默认类型

浮点数类型用于描述小数,采用IEEE-754浮点数标准

示例

var f32 float32 = 1.1
println(f32)

var f64 float64 = 1.1
println(f64)

复数类型

类型 名称 取值范围 说明
complex64 64位复数类型 实部与虚部取值同float32 由两个float32类型组成的复数
complex128 128位复数类型 实部与虚部取值同float64 由两个float64类型组成的复数

复数包含实部和虚部,由两个浮点数组成,我们可以使用内置的complex函数来创建复数类型,
并且使用realimag函数分别获取复数的实部和虚部。

示例

// 创建complex64类型的复数
c64 := complex(float32(1.1), float32(1.2))
// 获取实部
real64 := real(c64)
// 获取虚部
imag64 := imag(c64)
println(c64)
println(real64)
println(imag64)

// 创建complex128类型的复数
c128 := complex(1.1, 1.2)
// 获取实部
real128 := real(c128)
// 获取虚部
imag128 := imag(c128)
println(c128)
println(real128)
println(imag128)

字符串类型

类型 名称 取值范围 说明
string 字符串类型 通常取值为UTF-8支持的Unicode字符集 string本质上是一个byte集合,所以也可以表示UTF-8编码之外的字符集

string类型的默认值为空字符串,同大多数编程语言一样,Golang中的字符串类型的值也是不可变的。

string类型在底层实际是用byte数组来存储的,所以我们可以直接将其与byte切片进行相互转换,
后续会有单独的章节对字符串类型进行详细介绍,这里只做简单的介绍和了解。

在Golang中并没有名为char的字符类型,但是我们可以使用上文提到过的rune类型来描述一个合法字符,
也可以直接将字符转换为字符串,如下所示

示例

s := "hello world"
println(s)
// 将字符串转为byte切片
bytes := []byte(s)
println(bytes)
// 将byte切片转为字符串
s2 := string(bytes)
println(s2)
// 定义一个字符
var char rune = '文'
// 将字符转为字符串
s = string(char)
println(s)

小结

通过上述的简单介绍,我们对Golang的基本数据类型有了一个初步的了解,和其他主流的编程语言非常相似,
如果你有一定的编程基础,相信你很快就能掌握它。

如果你没有相关的经验也没有关系,后续的教程中,我们会不断的用到这些基础类型,
并且对一些常用的基本数据类型进行更进一步的深入探索。

当然了,这些还不是Golang数据类型中的全部,Golang中还有更加复杂的复合类型,
它们具有更加强大的功能以及更加灵活的使用方式,正是因为有了它们作为Golang的基石,
才使得Golang具有如此强大的生命力。

让我们来继续逐步深入学习吧!文章来源地址https://www.toymoban.com/news/detail-760428.html

到了这里,关于Go语言编程教程-基本数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索C语言的数据类型:解密编程世界的核心秘密

    ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog (1) 常量的概念 常量顾名思义就是无法改变的量,比如一周有7天,一天有24小时,这些都是无法改变的量。 (2) 常量的分类 整数常量:1,2,3,-1,-2等 小数

    2024年02月19日
    浏览(196)
  • Hlang--用Python写个编程语言-函数与基本数据结构实现

    okey,经过一段时间的努力,接下来要实现的是函数。当然还有对应的基本数据结构,那么之后的话,我们的工作就开始进一步转换了。 那么在这块我们要实现的有: 函数的定义 String类型的实现 列表类型的实现 实话实话,这个的实现是相当简陋的。不过作为一个小模型,应该

    2024年02月12日
    浏览(58)
  • 【Golang星辰图】数据管理利器:Go编程语言中的数据库和搜索引擎综合指南

    Go编程语言是一种强大、类型安全且高效的编程语言,它在处理数据库和搜索引擎方面有着广泛的应用。本篇文章将详细介绍几个Go编程语言中常用的数据库和全文搜索引擎,包括Go-bleve、Go-pgx、Go-leveldb/leveldb、Go-xorm、Go-mysql-driver和Go-bbolt/bbolt。对于每个工具,我们将介绍其功

    2024年03月26日
    浏览(72)
  • GO编程语言:简洁、高效、强大的开源编程语言

    在现代软件开发领域,随着应用复杂度的不断提升,开发人员对编程语言的需求也日益增长。GO编程语言,作为一种简洁、高效且具备强大并发能力的新型开源编程语言,逐渐成为了许多开发者的首选。本文将详细介绍GO语言在哪些项目开发中表现出色,以及为什么许多开发者

    2024年02月02日
    浏览(107)
  • Go语言网络编程(socket编程)http编程

    Web服务器的工作原理可以简单地归纳为 客户机通过TCP/IP协议建立到服务器的TCP连接 客户端向服务器发送HTTP协议请求包,请求服务器里的资源文档 服务器向客户机发送HTTP协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理“

    2024年02月09日
    浏览(70)
  • Go语言网络编程(socket编程)WebSocket编程

    WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 需要安装第

    2024年02月09日
    浏览(77)
  • GO语言网络编程(并发编程)Channel

    1.1.1 Channel 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问题。为了保证数据交换的正确性,必须使用互斥量对内存进行加锁,这种做法势

    2024年02月09日
    浏览(72)
  • GO语言网络编程(并发编程)select

    1.1.1 select多路复用 在某些场景下我们需要同时从多个通道接收数据。通道在接收数据时,如果没有数据可以接收将会发生阻塞。你也许会写出如下代码使用遍历的方式来实现: 这种方式虽然可以实现从多个通道接收值的需求,但是运行性能会差很多。为了应对这种场景,G

    2024年02月09日
    浏览(90)
  • Go语言网络编程(socket编程)TCP

    TCP协议 TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。 TCP服务端 一个TCP服务端可以同时连接很

    2024年02月09日
    浏览(58)
  • GO语言网络编程(并发编程)runtime包

    1.1.1. runtime.Gosched() 让出CPU时间片,重新等待安排任务(大概意思就是本来计划的好好的周末出去烧烤,但是你妈让你去相亲,两种情况第一就是你相亲速度非常快,见面就黄不耽误你继续烧烤,第二种情况就是你相亲速度特别慢,见面就是你侬我侬的,耽误了烧烤,但是还馋就

    2024年02月09日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包