温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Go语言中的基本数据类型介绍

发布时间:2021-09-08 14:37:47 来源:亿速云 阅读:146 作者:chen 栏目:编程语言

本篇内容主要讲解“Go语言中的基本数据类型介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言中的基本数据类型介绍”吧!

Go 语言是一种静态类型的编程语言,在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

布尔型

布尔类型的值只有两种:true 或 false。在if 和 for 语句的条件部分都是布尔类型的值,并且 == 和 < 等比较操作也会产生布尔型的值。

一元操作符 ! 对应逻辑非操作,因此 !true 的值为 false,更复杂一些的写法是 (!true==false) == true,实际开发中我们应尽量采用比较简洁的布尔表达式,就像用 x 来表示 x==true。

var a = 10
fmt.Println(a == 10) // true
fmt.Println(a == 5)  // false
fmt.Println(a != 10) // false
fmt.Println(a != 5)  // true

Go 语言对于值之间的比较有非常严格的限制,只有两个相同类型的值才可以进行比较,如果值的类型是接口(interface),那么它们也必须都实现了相同的接口。如果其中一个值是常量,那么另外一个值可以不是常量,但是类型必须和该常量类型相同。如果以上条件都不满足,则必须将其中一个值的类型转换为和另外一个值的类型相同之后才可以进行比较。

var a = 10
fmt.Println(a == true) // cannot use true (type untyped bool) as type int

布尔值可以和 &&(AND)和 ||(OR)操作符结合,并且有短路行为,如果运算符左边的值已经可以确定整个布尔表达式的值,那么运算符右边的值将不再被求值,因此下面的表达式总是安全的:

s != "" && s[0] == 'x'

Go 语言中不允许将整型强制转换为布尔型,代码如下:

var n bool
fmt.Println(int(n) * 2)  // cannot convert n (type bool) to type int

数值型

Go 语言的数值类型分为以下几种:整数、浮点数、复数。其中每一种都包含了不同大小的数值类型,例如有符号整数包含 int8、int16、int32、int64 等,每种数值类型都决定了对应的大小范围和是否支持正负符号。本小节我们主要介绍一下数值类型。

整型

Go 语言也是基于架构的类型,同时提供了有符号和无符号的整数类型。

大多数情况下,我们只需要 int 一种整型即可,它可以用于循环计数器(for 循环中控制循环次数的变量)、数组和切片的索引,以及任何通用目的的整型运算符,通常 int 类型的处理速度也是最快的。

浮点型

Go 语言提供了两种精度的浮点数:float32 和 float64,这些浮点数类型的取值范围可以从很微小到很巨大。

复数

复数是由两个浮点数表示的,其中一个表示实部(real),一个表示虚部(imag)。

Go 语言中复数的类型有两种,分别是 complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认类型。

复数的值由三部分组成 RE + IMi,其中 RE 是实数部分,IM 是虚数部分,RE 和 IM 均为 float 类型,而最后的 i 是虚数单位。如:1+2i

字符串型

字符串是一种值类型,且值不可变,即创建某个文本后将无法再次修改这个文本的内容,其实,字符串是字节的定长数组。

使用双引号 "" 来定义字符串,字符串中可以使用转义字符来实现换行、缩进等效果,常用的转义字符包括:

  • \n:换行符

  • \r:回车符

  • \t:tab 键

  • \u 或 \U`:Unicode 字符

  • \\:反斜杠自身

Go 语言比其他语言更加的灵活,此外,可通过反引号 ` 可以定义多行字符串。(注意:是反引号 `(键盘上1键左边键),而不是引号 ‘)

到此,相信大家对“Go语言中的基本数据类型介绍”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI