byte 类型比较_Go语言极简教程 - 第三篇 基础类型

daeca492eba68d394c566d0c599a4a44.png

布尔类型

Go语言中布尔类型关键字为bool,其仅有两个字面量值:true和false。

var ok bool // 声明一个bool类型变量,使用默认值falsevar found bool = true // 声明一个bool类型变量,并显式初始化truevar passed = true // 声明一个变量,并显式初始化true,编译器自动推断为bool类型

布尔类型和整型之间不能自动隐式转换。

var ok bool ok = 0 // 错误:0是整型,不能直接赋值给bool类型的变量

整型

Go语言内置12种整数类型,分别是uintptr、uint64、uint32、uint16、uint8、uint、int64、int32、int、int16、int8、byte。

需要注意的是,int与int32、int64之间的关系,在64位CPU上int与int64位数是相同的为8位,在32位CPU上int与int32位数是相同的为4, int32与int64无论在32或64位CPU上位数都是固定的分别为4和8位。

下图是在64位CPU上的输出结果:

27bd03beb1fd40f91848d17201ec6322.png

下图是在32位CPU上的输出结果:

cc44e2bedb6119cf375a9f16a1a69abb.png

另外,不同整数类型之间需要强制转换,但byte是uint8的别名,因此byte与uint8之间不需要强制转换,可以直接赋值。

var b1 int32 = 13var b2 int64 = 13b2=b1 // b1是int类型,b2是int64类型,不能直接赋值b2=int64(b1) // 将b1强制转换为int64类型var c1 bytevar c2 uint8c1=c2 // byte是uint8的别名,因此可以直接赋值

byte类型的源代码

0c5d1360ebfda300255cf8aad13bfada.png

浮点类型

浮点类型用于表示包含小数点的数据,Go语言内置了float32和float64两种浮点类型。

浮点类型需要注意的是:

  • 字面量会被编译器自动推导为float64类型
21daf622231b9ba1e23b07f609efa8cc.png
  • 由于浮点类型很难精确表示和存储,因此不应该对两个浮点数之间执行相等、不等以及比较大小等操作。如果确有需要,可以使用相关的math标准库进行操作。

字符串类型

字符串类型是Go语言的基础类型之一,可以使用字面量进行初始化。

var a = "Hello Golang!"
  • 可以像数组一样通过下标来操作字符串,但不能通过下标来修改字符串。
 var a = "Hello Golang!" var b= a[0] a[0]='h' // 错误,不能通过下标来修改字符串
  • 字符串类型的变量默认值(零值)为""空字符串,而不是nil。
  • 字符串转换为[]byte会复制字符串内容,所以当字符串较大或操作非常频繁时会引起性能问题。此场景下建议直接用[]byte来代替字符串。
 var a = "Hello Golang!" var b =[]byte(a)
  • 可以用len函数来获取字符串的长度。
 var a = "Hello" fmt.Printf("(%s) length is %d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值