- Solidity 教程
- Solidity - 主页
- Solidity - 概述
- Solidity - 环境设置
- Solidity - 基本语法
- Solidity - 首次应用
- Solidity - 评论
- 坚固性 - 类型
- Solidity - 变量
- Solidity - 可变范围
- Solidity - 运算符
- 坚固性 - 循环
- Solidity - 决策
- 坚固性 - 弦乐
- Solidity - 数组
- Solidity - 枚举
- Solidity - 结构
- Solidity - 映射
- 坚固性 - 转换
- Solidity - 以太币单位
- Solidity - 特殊变量
- Solidity - 风格指南
- 实体函数
- Solidity - 函数
- Solidity - 函数修饰符
- Solidity - 查看函数
- Solidity - 纯函数
- Solidity - 后备函数
- 函数重载
- 数学函数
- 加密函数
- Solidity 常见模式
- Solidity - 提款模式
- Solidity - 限制访问
- 坚固进阶
- Solidity - 合约
- 坚固性——继承
- Solidity - 构造函数
- Solidity - 抽象合约
- Solidity - 接口
- Solidity - 库
- 坚固性 - 装配
- Solidity - 活动
- Solidity - 错误处理
- Solidity 有用资源
- Solidity - 快速指南
- Solidity - 有用的资源
- 坚固性 - 讨论
坚固性 - 弦乐
Solidity 支持使用双引号 (") 和单引号 (') 的字符串文字。它提供字符串作为数据类型来声明 String 类型的变量。
pragma solidity ^0.5.0;
contract SolidityTest {
string data = "test";
}
在上面的示例中,“test”是一个字符串文字,而 data 是一个字符串变量。更优选的方法是使用字节类型而不是字符串,因为与字节操作相比,字符串操作需要更多的气体。Solidity 提供字节到字符串之间的内置转换,反之亦然。在 Solidity 中,我们可以轻松地将字符串文字分配给 byte32 类型变量。Solidity 将其视为 byte32 文字。
pragma solidity ^0.5.0;
contract SolidityTest {
bytes32 data = "test";
}
逃脱角色
| 先生。 | 特征及描述 |
|---|---|
| 1 | \n 开始新的一行。 |
| 2 | \\ 反斜杠 |
| 3 | \' 单引号 |
| 4 | \" 双引号 |
| 5 | \b 退格键 |
| 6 | \F 换页 |
| 7 | \r 回车 |
| 8 | \t 标签 |
| 9 | \v 垂直制表符 |
| 10 | \xNN 表示十六进制值并插入适当的字节。 |
| 11 | \uNNNN 表示 Unicode 值并插入 UTF-8 序列。 |
字节到字符串的转换
可以使用 string() 构造函数将字节转换为字符串。
bytes memory bstr = new bytes(10); string message = string(bstr);
例子
尝试以下代码来了解字符串在 Solidity 中的工作原理。
pragma solidity ^0.5.0;
contract SolidityTest {
constructor() public{
}
function getResult() public view returns(string memory){
uint a = 1;
uint b = 2;
uint result = a + b;
return integerToString(result);
}
function integerToString(uint _i) internal pure
returns (string memory) {
if (_i == 0) {
return "0";
}
uint j = _i;
uint len;
while (j != 0) {
len++;
j /= 10;
}
bytes memory bstr = new bytes(len);
uint k = len - 1;
while (_i != 0) {
bstr[k--] = byte(uint8(48 + _i % 10));
_i /= 10;
}
return string(bstr);
}
}
使用Solidity First Application章节中提供的步骤运行上述程序。
输出
0: string: 3