Appearance
类型转换
Solidity
有多种数据类型(例如,布尔型,整数型,地址型等),有时需要将一个数据类型转换为另一个数据类型。这叫做类型转换。
下面是一些 Solidity
类型转换的例子:
1. 将 string
类型转换为 bytes
类型:
solidity
string memory str = "Hello world";
bytes memory bts = bytes(str);
2. 将 string
类型转换为整数型 uint8
:
solidity
string memory str = "10";
uint8 num = uint8(bytes(str)[0] - 48);
3. 将整数型 uint
转换为字符串 string
类型:
solidity
uint num = 10;
string memory str = uint2str(num);
function uint2str(uint _i) internal pure returns (string memory str) {
if (_i == 0) {
return "0";
}
uint j = _i;
uint length;
while (j != 0) {
length++;
j /= 10;
}
bytes memory bstr = new bytes(length);
uint k = length - 1;
while (_i != 0) {
bstr[k--] = byte(uint8(48 + _i % 10));
_i /= 10;
}
str = string(bstr);
}
上面的第三个例子是一个函数,将一个 uint
型变量转换为字符串 string
类型。
函数遍历变量的每一位,将其转换为对应的 ASCII 码
并存储在 bytes
类型的变量 bstr
中,最后将其转换为 string
类型并返回。
这些例子可以在 Remix
编译器中进行演示。复制上述代码,粘贴到 Remix
编辑器的合约编辑器中,然后单击 编译
按钮。
如果没有错误,您可以在合约运行期间测试这些函数。