Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >GO语言基础之基础类型转换

GO语言基础之基础类型转换

原创
作者头像
墨紫羽墨
修改于 2022-12-27 07:28:33
修改于 2022-12-27 07:28:33
2K0
举报
文章被收录于专栏:FutureTesterFutureTester

1、int类型转换为int32

代码语言:go
AI代码解释
复制
func intToInt32() {
	var intNum int = 123
	int32Num := int32(intNum)
	fmt.Printf("int32Num type:%T,value: %v\n", int32Num, int32Num)
}

运行结果:

2、int32类型转uint

代码语言:go
AI代码解释
复制
func int32ToUint() {
	var int32Num int32 = 456
	uintNum := uint(int32Num)
	fmt.Printf("uintNum type:%T,value: %v\n", uintNum, uintNum)
}

运行结果:

从上面两个例子可以看出Go 语言类型转换基本格式:type_name(expression) 像数值类型之间的转换都可以这样之间转换。

3、int类型转换为string

代码语言:go
AI代码解释
复制
func intToString() {
	var intNum int = 789
	str := strconv.Itoa(intNum)
	fmt.Printf("str type:%T,value:%v\n", str, str)
	// itoa方法的实现源码如下:
	formatStr := strconv.FormatInt(int64(intNum), 10)
	fmt.Printf("formatStr type:%T,value:%v\n", formatStr, formatStr)
	// fmt的方式
	fmtstr := fmt.Sprint(intNum)
	fmt.Printf("fmtstr type:%T,value:%+v\n", fmtstr, fmtstr)
}

运行结果为:

4、string类型转换为int

代码语言:go
AI代码解释
复制
func stringToInt() {
	var str string = "124"
	num, _ := strconv.Atoi(str)
	fmt.Printf("num type:%T,value:%v\n", num, num)
	// atoi方法的实现源码如下:
	parseInt, _ := strconv.ParseInt(str, 10, 0)
	fmt.Printf("parseInt type:%T,value:%v\n", parseInt, parseInt)
}

运行结果为:

5、string类型转换为int,传值不正确的时候是转换不了的

代码语言:go
AI代码解释
复制
func stringToIntErr() {
	var str string = "qwe"
	num, _ := strconv.Atoi(str)
	fmt.Printf("num type:%T,value:%v\n", num, num)
}

运行结果:

6、byte类型转换为int

代码语言:go
AI代码解释
复制
func byteToInt() {
	// 字符需要使用单引号包起来
	b := []byte{'1', '2', '3'}
	bytesBuffer := bytes.NewBuffer(b)
	fmt.Printf("bytesBuffer type:%T,value:%v\n", bytesBuffer, bytesBuffer)
	str := bytesBuffer.String()     // 先转为string
	byteNum, _ := strconv.Atoi(str) // 在转为int
	fmt.Printf("byteNum type:%T,value:%v\n", byteNum, byteNum)
}

运行结果:

7、byte类型转为int32

代码语言:go
AI代码解释
复制
func byteToInt32() {
	c := []byte{0, 0, 0, 99}
	cBytes := bytes.NewBuffer(c)
	var num int32
	binary.Read(cBytes, binary.BigEndian, &num)
	fmt.Printf("num type:%T,value:%v\n", num, num)
	// 0x表示16进制
	// 0x03转化二进制为0011,十进制为3,但是在第二节所以表示256*3=768
	// 0xe8转化二进制为1110 1000,十进制为232
	b := []byte{0x00, 0x00, 0x03, 0xe8}
	bBytes := bytes.NewBuffer(b)
	binary.Read(bBytes, binary.BigEndian, &num)
	fmt.Printf("num type:%T,value:%v\n", num, num)
}

运行结果:

8、int类型转为byte

代码语言:go
AI代码解释
复制
func intToByte() {
	var num int32 = 99
	bytesBuffer := bytes.NewBuffer([]byte{})
	binary.Write(bytesBuffer, binary.BigEndian, num)
	byteB := bytesBuffer.Bytes()
	fmt.Printf("byteB type:%T,value:%v\n\n", byteB, byteB)
}

运行结果:

9、byte转为string

代码语言:go
AI代码解释
复制
func byteToString() {
	buf := []byte{'h', 'e', 'l', 'l', 'o'}
	buf2 := bytes.NewBuffer(buf).String()
	fmt.Printf("buf2 type:%T,value:%v\n", buf2, buf2)
	// ascii值:48-57表示0-9,65-90表示A-Z,97-122表示a-z
	str := string([]byte{97, 98, 99, 100})
	fmt.Printf("str type:%T,value:%v\n\n", str, str)
}

运行结果:

10、string转为byte

代码语言:go
AI代码解释
复制
func stringToByte() {
	// ascii值:48-57表示0-9,65-90表示A-Z,97-122表示a-z
	var str string = "hello"
	var bstr []byte = []byte(str)
	fmt.Printf("bstr: type:%T,value:%v\n", bstr, bstr)
}

运行结果:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
go语言学习-类型转换
1.字符串到整形(string to int):ParseInt 返回的是 int64
solate
2019/07/19
9900
浅谈Go类型转换之间的那些事
Go语言是一门静态编译型语言,是一门强类型语言,Go语言中类型分为两种:命名类型(已定义类型)和未命名类型(组合类型),我举例说一下
阿伟
2020/02/11
2.9K0
Go语言的变量、函数、Socks5代理服务器
Go语言中变量的声明和JavaScript很像,使用var关键字,变量的声明、定义有好几种形式 
阳光岛主
2019/02/18
6560
52. Socket Server 自定义协议的简单实现 | 厚土Go学习笔记
在 Server 和 Client 通讯中,由于网络等原因很有可能会发生数据丢包的现象。如果数据确实,服务端接收的信息不完整,就会造成混乱。 我们就需要在 Server 和 Client 之间建立一个通讯协议,通过协议中的规则,判断当前接收到的信息是否完整。根据信息的完整情况,采取不同的处理方法。 通讯协议 protocol 的核心就是设计一个头部。如果传来的信息不包含这个头部,就说明当前信息和之前的信息是同一条。那么就把当前信息和之前的那条信息合并成一条。 而协议主要包含的功能是封装(Enpack)和解析
李海彬
2018/03/19
2K0
52. Socket Server 自定义协议的简单实现 | 厚土Go学习笔记
Go语言学习系列——基础语法——【坚果派-红目香薰】
红目香薰
2025/03/06
570
Go语言学习系列——基础语法——【坚果派-红目香薰】
【Golang】类型转换归纳总结
在C#中有两种类型转换:隐式类型转换、显示类型转换(也作强制转换),其中隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型,也就是小转大。
DDGarfield
2022/06/23
2.1K0
Go 编程 | 连载 06 - 基本数据类型转换(strconv)
ParseFloat() 可以将字符串转换为 float 类型,由于 float 类型分为 float32 和 float64,所有 ParseFloat() 有两个参数,第一个参数为 string,第二个参数就是 bitSize,既要转换成 float32(32 个二进制位 bit,占 4 个字节) 还是 float64(64 个二进制位 bit,占 8 个字节)。
RiemannHypothesis
2022/09/26
4200
Go 编程 | 连载 06 - 基本数据类型转换(strconv)
Go语言基于Socket编写服务器端与客户端通信的实例
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: package main import ( "fmt" "net" "log" "os" ) func main() {
李海彬
2018/03/23
2.2K0
转--Go语言基于Socket编写服务器端与客户端通信的实例
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、receive等一系列操作头疼,只要使用Golang中自带的net包即可很方便的完成连接等操作~ 在这里,给出一个最最基础的基于Socket的Server的写法: 代码如下: package main import ( "fmt" "net" "log" "os" ) func main()
李海彬
2018/03/22
1.2K0
捋一捋Go语言的一个类型转换工具包strconv包
Hey,大家好,我是码农,星期八,这次咱们来学一下Go语言的一个类型转换工具包strconv。
Go进阶者
2021/03/24
9350
捋一捋Go语言的一个类型转换工具包strconv包
GoLang中基本数据类型之间的转换
转换的时候建议从低位转换成高位,高位转换成低位的时候如果转换不成功就会溢出,和我们想的结果不一样。
BUG弄潮儿
2024/01/24
2760
GoLang中基本数据类型之间的转换
[GO语言基础] 三.变量声明、数据类型、标识符及编程练习
作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了Go的编译运行、语法规范、注释转义及API标准库知识;这篇文章将介绍Golang的变量、数据类型和标识符知识,并通过12道编程练习进行提升。这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~
Eastmount
2021/12/03
6640
[GO语言基础] 三.变量声明、数据类型、标识符及编程练习
[GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题
作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了Go的编译运行、语法规范、注释转义及API标准库知识;这篇文章将介绍Golang的变量、数据类型和标识符知识,并通过12道编程练习进行提升。 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~
Eastmount
2021/02/25
7750
Go | 基本数据类型的相互转换
n1为int32, n2为int16, 所以先把加数n1转换成int16, 再做加法
甜点cc
2022/11/02
3130
Go | 基本数据类型的相互转换
Go 语言类型转换的陷阱
Go 语言作为强类型语言,在使用 Golang 开发项目时,经常会遇到类型转换的场景,整型之间可以直接转换,字节切片和字符串之间也可以直接转换。
frank.
2023/08/09
2070
Go 语言类型转换的陷阱
Go 语言怎么使用类型转换和类型断言?
Go 语言是强类型编程语言,一些使用弱类型编程语言的读者朋友们在初学 Go 语言时,多多少少都会不太适应 Go 语言的类型。
frank.
2023/08/09
2960
Go 语言怎么使用类型转换和类型断言?
go语言基础语法入门
首先字节跳动已经全面拥抱了 go 语言,公司内部有上万个微服务使用 golang 来编写,不久前也开源了 GORPC 框架 KiteX。腾讯、百度、美团、滴滴、深信服、平安、OPPO、知乎、去哪儿、360、金山、微博、bilibili、七牛、PingCAP 等公司也在大量使用 Go 语言。 国外 Google Facebook 等公司也在大量使用 Go 语言。 从业务维度看过语言已经在云计算、微服务、大数据、区块链、物联网等领域蓬勃发展。然后在云计算、微服务等领域已经有非常高的市场占有率 Docker、Kubernetes、Istio、etcd、prometheus 几乎所有的云原生组件全是用 Go 实现的。
timerring
2023/10/13
2020
一文搞懂Go语言标准库,strconv
func ParseBool(str string) (value bool, err error)
微客鸟窝
2022/01/05
6630
基于Go的网络基础知识笔记
Lemon黄
2024/08/27
1550
基于Go的网络基础知识笔记
Go 编程 | 连载 05 - 基本数据类型转换
Go 中基本数据类型的强制转换值指的是通过 int、int32、string、float32、float64... 等基本数据类型的标识符来实现的数据类型转换。
RiemannHypothesis
2022/09/26
6400
Go 编程 | 连载 05 - 基本数据类型转换
相关推荐
go语言学习-类型转换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档