【金秋打卡】第17天 Go开发工程师全新版 4-2
2022/11/12 3:23:58
本文主要是介绍【金秋打卡】第17天 Go开发工程师全新版 4-2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称: Go开发工程师全新版
课程章节: 4-2 基本类型的转换
课程讲师: bobby
课程内容:
转换的格式
变量名 = 转换的类型(要转换的变量名)
数值之间转换(数值之间可以直接转换)
package main import ( "fmt" "strconv" ) func main() { // 有符号整数 转为 无符号整数 var a int8 = 12 var b uint8 = uint8(a) // int8 转 uint8 var c uint16 = uint16(a) // int8 转 uint16 fmt.Println(b, c) // 12 12 // 浮点数 转为 整数 var a1 float32 = 5.12 var b1 int = int(a1) // 5,小数点后面会舍弃掉 var C1 int8 = int8(a1) // 5,小数点后面会舍弃掉 fmt.Println(b1,c1) // 5 5 // 整数 转为 浮点数 var a2 int8 = 3 var b2 float32 = float32(a2) var C2 float64 = float64(a2) fmt.Println(b2,C2) //3 3 }
可以使用 type 关键字设置类型别名:
Go 允许在底层结构相同的两个类型之间互转
package main import ( "fmt" "strconv" ) func main() { // 设置 IT 类型,它的底层 int // 相当于给 int 类型起一个别名叫 IT,这里名字可以随意更改 type IT int // 使用设置的别名 // 因为 IT类型 底层是 int,所以这里值要设置为 整数 var a IT = 5 var intA int = 231 // 这里不能把 int 类型赋值给,IT 类型 // 因为类型不同,虽然底层一样,需要转换类型 var a1 IT = intA // 错误 fmt.Println(a1) // 错误 // int 类型转为,设置的 IT 类型 var a2 IT = IT(intA) fmt.Println(a2) // 231 }
注意事项:
- 不是所有数据类型都能转换的,例如字母格式的string类型"abcd"转换为int肯定会失败
- 低精度转换为高精度时是安全的,高精度的值转换为低精度时会丢失精度。例如int32转换为int16,float32转换为int
- 这种简单的转换方式不能对int(float)和string进行互转,要跨大类型转换,可以使用strconv包提供的函数
数值 转 字符串(使用 strconv 包)
数值 转 字符串,不能直接转换需要使用 strconv 包,进行类型互转:
Itoa():int 转 string
Atoi():string 转 int
package main import ( "fmt" "strconv" ) func main() { var a int = 21 //Itoa() 函数可以实现 int 转 字符串 mstr := strconv.Itoa(a) //返回一个参数 fmt.Println(mstr) // 21 //Atoi() 函数可以实现 字符串 转 int var a2 string = "12" myint, err := strconv.Atoi(a2) //返回两个参数 if err != nil { fmt.Println("convert error") } fmt.Println(myint) // 12 }
课程收获:
- 数值之间可以直接转换
- 使用 strconv 包进行类型转换
这篇关于【金秋打卡】第17天 Go开发工程师全新版 4-2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享
- 2024-12-10搭建个人博客网站之一、使用hugo创建个人博客网站