- 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
廣告