Solidity - Chuỗi

Solidity hỗ trợ chuỗi ký tự bằng cách sử dụng cả dấu ngoặc kép (") và dấu nháy đơn ('). Nó cung cấp chuỗi làm kiểu dữ liệu để khai báo một biến kiểu String.

pragma solidity ^0.5.0;

contract SolidityTest {
   string data = "test";
}

Trong ví dụ trên, "test" là một chuỗi ký tự và dữ liệu là một biến chuỗi. Cách ưu tiên hơn là sử dụng các kiểu byte thay vì Chuỗi vì hoạt động chuỗi đòi hỏi nhiều gas hơn so với hoạt động byte. Solidity cung cấp chuyển đổi sẵn có giữa các byte thành chuỗi và ngược lại. Trong Solidity, chúng ta có thể gán chuỗi ký tự cho một biến kiểu byte32 một cách dễ dàng. Solidity coi nó như một ký tự byte32.

pragma solidity ^0.5.0;

contract SolidityTest {
   bytes32 data = "test";
}

Nhân vật thoát

Sr.No. Nhân vật & Mô tả
1

\n

Bắt đầu một dòng mới.

2

\\

Gạch chéo ngược

3

\'

Trích dẫn đơn

4

\"

Trích dẫn kép

5

\b

Backspace

6

\f

Thức ăn dạng

7

\r

Vận chuyển trở lại

số 8

\t

Chuyển hướng

9

\v

Tab dọc

10

\xNN

Đại diện cho giá trị Hex và chèn các byte thích hợp.

11

\uNNNN

Đại diện cho giá trị Unicode và chèn chuỗi UTF-8.

Chuyển đổi byte sang chuỗi

Các byte có thể được chuyển đổi thành Chuỗi bằng cách sử dụng hàm tạo string ().

bytes memory bstr = new bytes(10);
string message = string(bstr);

Thí dụ

Hãy thử đoạn mã sau để hiểu cách chuỗi hoạt động trong 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);
   }
}

Chạy chương trình trên bằng các bước được cung cấp trong chương Ứng dụng đầu tiên của Solidity .

Đầu ra

0: string: 3