- 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