- 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 - View 函数
- Solidity - Pure 函数
- Solidity - 回退函数
- 函数重载
- 数学函数
- 加密函数
- Solidity 常用模式
- Solidity - 提款模式
- Solidity - 访问限制
- Solidity 高级
- Solidity - 合约
- Solidity - 继承
- Solidity - 构造函数
- Solidity - 抽象合约
- Solidity - 接口
- Solidity - 库
- Solidity - 汇编
- Solidity - 事件
- Solidity - 错误处理
- Solidity 有用资源
- Solidity - 快速指南
- Solidity - 有用资源
- Solidity - 讨论
Solidity - 字符串
Solidity 使用双引号 (") 和单引号 (') 都支持字符串字面量。它提供字符串作为数据类型来声明字符串类型的变量。
pragma solidity ^0.5.0; contract SolidityTest { string data = "test"; }
在上面的示例中,“test” 是一个字符串字面量,data 是一个字符串变量。更推荐的方式是使用字节类型而不是字符串,因为字符串操作与字节操作相比需要更多的 gas。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 第一个应用章节中提供的步骤运行上述程序。
输出
0: string: 3
广告