Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 68.5MB ·虚拟内存 1300.5MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Solidity 中,字符串值使用双引号(")和单引号(')包括,字符串类型用 string 表示。
字符串是特殊的数组,是引用类型。
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SolidityTest { string public data = "test"; }
在上面的例子中,"test" 是一个字符串,data 是一个字符串变量。
Solidity 提供字节与字符串之间的内置转换,可以将字符串赋给 bytes 类型变量。
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SolidityTest { bytes public data = "test"; }
Solidity 字符串类型支持的转义字符,如下表所示:
序号 | 转义字符 |
---|---|
1 | \n开始新的一行 |
2 | \\反斜杠 |
3 | \'单引号 |
4 | \"双引号 |
5 | \b退格 |
6 | \f换页 |
7 | \r回车 |
8 | \t制表符 |
9 | \v垂直制表符 |
10 | \xNN表示十六进制值并插入适当的字节。 |
11 | \uNNNN表示Unicode值并插入UTF-8序列。 |
可以使用 string() 构造函数将 bytes 转换为字符串。
bytes memory bstr = new bytes(10); string message = string(bstr);
示例
bytes 到字符串的转换:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SolidityTest { string public data; bytes bstr = new bytes(2); function trans() external{ bstr[0] = 'a'; bstr[1] = 'b'; data = string(bstr); } }
运行上述程序,调用trans后,查看data:
0: string: ab
可以使用bytes()构造函数将字符串转换为bytes。
示例
字符串到bytes的转换:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SolidityTest { constructor(){ } function getResult(string memory s) public pure returns(bytes memory){ return bytes(s); // 字符串转换到bytes } }
数组是一种数据结构,它是存储同类元素的有序集合。数组中的特定元素由索引访问,索引值从 0 开始。例如,声明一个数组变量,如 numbers,可以使用 numbers[0]、numbers[1] 表示单个变量。数组大小 ...