go09 类型转换

简介: go09 类型转换

go09 类型转换

类型不能混着用

连接两个字符串,使用 + 运算符:

如果想连接字符串和数值,是会报错的:

d570b7a18b18444a903bb69f91c7739a.png


整型和浮点类型也不能混着用:

数值类型间的转换

下例中,如果想把 age 转化成 浮点类型,需要使用目标类型将其“包裹”起来:


从浮点类型转为整数类型

可以从浮点类型转化为整数类型,小数点后边的部分会被截断,而不是舍入:

无符号和有符号整数类型之间也需要转换。

不同大小的整数类型之间也需要转换


类型转换时需谨慎

“环绕行为”:



可以通过 math 包提供的 max、min 常量,来判断是否超过最大最小值:

字符串转换

想把 rune、byte 转化为 string,语法是一样的:


a04ae05974954b9dbec2be93819eb313.png

fbbd4f8d164b4391b97f902899395ca6.png

想把数值转化为string,它的值必须能转化为 code point。

strconv 包的 Itoa 函数就可以做这件事:

Itoa 是 Integer to ASCII 的意思。


Unicode 是 ASCII 的超集,它们前 128 个 code points 是一样的(数字、英文字母、常用标点)。


另外一种把数值转化为 string 的方式是使用 Sprintf 函数,和 Printf 略类似,但是会返回一个 string:

e7b3d1dc3018451e8e680e3200db4b8e.png

cf55d750af684002a8386f8d12f44fc1.png


strconv 包里面还有个 Atoi(ASCII to Integer) 函数。

由于字符串里面可能包含任意字符(比如"10ds"),或者要转换的数字字符串太大,所以 Atoi 函数可能会发生错误:


3b810f2e4b2f46b2b39241181a6e35d3.png


如果 err 的值为 nil,那么就代表没发生错误。

**提示:**Go 是静态类型语言,一旦某个变量被声明,那么它的类型就无法再改变了。

布尔类型的转换


Print 家族的函数,会把 bool 类型的值打印成 true/false 的文本。

下面的 Sprintf 函数是将其他类型转换成字符串,赋值给 launchText 。

某些语言里,经常把 1 和 0 当作 true 和 false,但是在 Go 里面不行。


注意:如果你想使用 string(false), int(false);bool(1), bool(“yes”) 等类似的方式进行转换,那么 Go 编译器会报错。

【上一讲】go08 多语言文本

【下一讲】go10 函数

目录
相关文章
|
6月前
|
存储 Go
Go基本数据类型
主要介绍GO语言的基本数据类型
43 2
|
6月前
|
Go
Go的数据类型
Go的数据类型
32 0
|
6月前
|
Go
Go速成-常量
Go语言常量,定义的值是不能进修修改的,定义常量就是const,常量定义建议全部大写在定义常量的时候如果没有声明值,就会沿用上面的值,常量类型只可以定义bool,数值类型,字符串,常量没有必须使用的要求。
|
5月前
|
Go
go的基本类型及转换
go的基本类型及转换
|
2月前
|
存储 Go
Go to Learn Go之类型转换
Go to Learn Go之类型转换
39 7
|
2月前
|
大数据 Shell Go
GO方法与自定义类型
本文详细介绍了 Go 语言中的自定义数据类型与方法。不同于传统的面向对象编程语言,Go 通过结构体 (`struct`) 和方法 (`method`) 来扩展自定义类型的功能。文章解释了如何定义结构体、创建方法,并探讨了值接收器与指针接收器的区别及应用场景。此外,还介绍了方法的可见性以及接收器的命名惯例。通过具体示例,帮助读者更好地理解和应用这些概念。
|
3月前
|
Go 数据处理
|
5月前
|
编译器 Go
Go 语言类型转换
Go 语言类型转换
37 3
|
6月前
|
编译器 Serverless Go
Go 语言常量
Go 语言常量
33 1
|
存储 Go 开发者
GO的几种不同类型
7种基本类型
85 0