AI智能
改变未来

Go的100天之旅-04基础数据类型

基础数据类型

  • 整型
  • 浮点类型
  • 布尔型
  • 复数

在变量的定义中,我们讲了每个变量是有类型的,类型在计算机中是用来约束数据的解释。Go语言和其它计算机语言一样,提供丰富了丰富的数据类型,我们就来看看到底有哪些类型,同时也可以比较一下它和其它语言的区别。

整型

整型就是用来表示变量是整数的类型。和

C

类似,

Go

整型分为两个大类,无符号和有符号的,有符号简单来说就是能表示负数的类型,无符号就是这个类型没有正负号,统一表示整数。除了符号还有一点就是长度,因为符号和长度就决定了整型的范围。下面是

Go

整型的分类:

类型 说明 范围
int 整型,长度和平台机器字节大小相关一般32或者64位 和字节码相关
uint 无符号整型,长度和平台机器字节大小相关一般32或者64位 和字节码相关
int8 有符号8位整型 -128 ~ 127
uint8 无符号8位整型 0 ~ 255
int16 有符号16位整型 -32768 ~ 32767
uint16 无符号16位整型 0 ~ 65535
int32 有符号32位整型 -2147483648 ~ 2147483647
uint32 无符号32位整型 0 ~ 4294967295
int64 有符号64位整型 -9223372036854775808 ~ 9223372036854775807
uint64 无符号64位整型 0 ~ 18446744073709551615

浮点类型

Go

有两种浮点类型,

float32

float64

,它们都符合

IEEE754

规范的定义。讲到浮点类型不得不提到的就是精度,

float32

大概提供6位的精度误差,而

float64

提供约15位的精度误差。
例如下面的代码:

package mainimport \"fmt\"func main() {var i float32 = 10var j float32 = 10.0000000001var m float64 = 10var n float64 = 10.0000000001fmt.Println(i == j)fmt.Println(m == n)}

打印的是:

truefalse

因此在平时的使用中需要注意精度的问题。除了直接用小数的形式,还可以用科学计数法,例如

var i float32 = 10e-2 // 0.01

布尔型

布尔类型一共有2种:

true

false

,通常用进行逻辑判断的

复数

复数在通常用的不是很多,在数学上的定义,复数有实部和虚部。

Go

提供了两种精度的复数类型,

complex64

complex128

分别对应了

float32

float64

的精度。

var x complex128 = complex(1, 2) // 1+2ivar y complex128 = complex(3, 4) // 3+4ii := 1 + 2ij := 3 + 4i

上面是复数的写法,分别指定它们的实部和虚部就行了。复数也可以比较是否相等

i := 1 + 2ij := 1 + 3ifmt.Println(i == j)

但是必须实部和虚部都相同才为

true

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Go的100天之旅-04基础数据类型