类型转化
题目:
关于类型转化,下面选项正确的是?
1 |
|
答案:
1 |
|
解析:
- A选项是错误的,因为将int类型的变量赋值给MyInt类型的变量是不允许的。
- 选项 B 是错误的,应该是使用类型转换语法将 int 类型的变量转换为 MyInt 类型,即
var j MyInt = MyInt(i)
。 - 对于选项 C,使用类型转换表达式
MyInt(i)
可以将i
的值从int
类型转换为MyInt
类型,并将结果赋给j
。 - 对于选项 D,使用类型断言
i.(MyInt)
是错误的,因为i
的底层类型是int
,而不是MyInt
,所以无法将其转换为MyInt
类型。
类型断言:用于将接口类型的值转换为具体的类型。在转换的过程中需要注意以下几点:
- 语法:value.(type)
- value:接口类型的值
- type:需要转换的具体类型
- 转换前需要判断接口类型的值是否为 nil 或者对应类型的零值,避免在转换时出现 panic。
下面是一个类型断言的正确使用示例:
1 |
|
输出如下:
1 |
|
类型转化
http://example.com/2023/04/27/Go每日一题/类型转化/