一文吃透Go语言整型用法 新手必备指南!

简介: 一文吃透Go语言整型用法 新手必备指南!

在编程语言中,整型是最基础和常用的数据类型之一,用于表示整数值。Go 语言中提供了丰富的整型类型用来表示不同大小和有无符号的整数。正确选择和使用合适的整型类型是 Go 语言新手必须掌握的基础知识。

本文将详细介绍 Go 语言中的整型类型定义、初始化、使用方式等内容,并辅以完整的代码示例加深理解。让我们从整型的分类和字节大小开始了解 Go 语言的整型吧!

1

 

一、整型分类

Go 语言中的整型可以分类为:

  1. 带符号和无符号整数
  2. 带符号和无符号整数根据数据位数分为 int8、int16、int32、int64 等
  3. 还有一种特殊的 rune 类型,用于表示 Unicode 码点

2

 

二、带符号和无符号整型

基础的整型类型分为两大类:

  1. 符号的整型:可以表示正数、负数和 0
  2. 无符号整型:只能表示大于或等于 0 的整数

例如:

var a int8 = -128 // 带符号整型
var b uint8 = 255 // 无符号整型

3

 

三、整型位数

Go 语言中整型支持不同的位数,主要有 int8、int16、int32、int64 这些关键字,它们能表示的整数范围如下:

  • int8: -128 ~ 127
  • int16: -32768 ~ 32767
  • int32: -2147483648 ~ 2147483647
  • int64: -9223372036854775808 ~ 9223372036854775807

选择不同位数的整型时,应根据实际值的大小来决定,不要随意使用 int 或 int64。

4

 

四、整型的默认类型

Go 语言中如果不指定类型,默认为 int 类型,在 32 位系统上 int 就是 int32,在 64 位系统上 int 就是 int64。

例如:

var a int // int32或int64
var b uint // uint32或uint64

所以声明变量时,最好明确指定整型的精度,如 int32、int64 等。

5

 

五、整型初始化

声明整型变量时可以通过两种方式进行初始化:

  1. 初始化为一个常量值
var a int32 = 100

2. 初始化为一个常量值

var b int16 = int16(a) * 20

初始化值必须在对应的整型范围内,否则会溢出。

6

 

六、安全的类型转换

不同精度的整型不能直接转换,需要通过转换函数进行安全转换:

var a int32 = 100
var b int8 
b = int8(a) // 正确,有效转换

如果转换结果超出了目标类型的范围,会按溢出处理:

var a int16 = 128
var b int8
b = int8(a) // b为-128

7

 

七、特殊的 rune 类型

rune 类型实际上是一个 int32 的整数类型,用于表示一个 Unicode 码点,它可以表示一个 UTF-8 编码的 Unicode 字符:

var a rune = '中'

rune 类型经常用于表示字符。

8

 

八、示例代码

下面是一个使用 Go 语言整型的简单示例:

package main
import "fmt"
func main() {
  var a int16 = 25
  var b int8 
  var c int64
  b = int8(a)
  c = int64(a) + 20
  fmt.Println(a, b, c)
}

输出结果:

25 25 45

通过这个示例可以看出 Go 语言对整型的灵活使用。

9

 

总结

通过本文对 Go 语言整型的介绍,我们可以发现 Go 提供了丰富的整型类型供选择,可以表示不同大小和无符号的整数。我们应根据实际的值范围选择合适的整型。另外类型转换需要注意安全转换。希望大家可以逐步掌握 Go 语言中的整型用法。


封面图,自取哈

目录
相关文章
|
21天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
34 7
|
21天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
21天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
94 71
|
20天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
101 67
|
1天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
26 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
21天前
|
存储 Go
go语言中映射
go语言中映射
33 11
|
13天前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
23天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
93 62
|
23天前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
32 12
|
22天前
|
Go 索引
go语言使用索引遍历
go语言使用索引遍历
29 9