【区块链安全 | 第二十一篇】类型之基础类型之间的转换

在这里插入图片描述

基础类型之间的转换

隐式转换

隐式类型转换是在某些情况下由编译器自动应用的,例如在赋值、传递函数参数和应用运算符时。一般来说,当值类型之间的隐式转换是语义上合理的且没有信息丢失时,才会发生。

例如,uint8 可以转换为 uint16int128 可以转换为 int256,但 int8 不能转换为 uint256,因为 uint256 无法容纳像 -1 这样的负值。

如果对不同类型的操作数应用运算符,编译器会尝试将其中一个操作数隐式转换为另一个操作数的类型(赋值时也是如此)。这意味着运算总是在其中一个操作数的类型下执行。

关于哪些隐式转换是可能的,更多的细节请参阅相关类型的章节。

以下是一个例子,yz 是加法的操作数,它们的类型不同,但 uint8 可以隐式转换为 uint16,而 uint16 不能隐式转换为 uint8。因此,在加法执行之前,y 会被转换为 z 的类型(即 uint16)。表达式 y + z

猜你喜欢

转载自blog.csdn.net/2301_77485708/article/details/146884769