Solidity - String
Soliditas mendukung literal String menggunakan petik ganda (") dan petik tunggal ('). Soliditas menyediakan string sebagai tipe data untuk mendeklarasikan variabel berjenis String.
pragma solidity ^0.5.0;
contract SolidityTest {
string data = "test";
}
Dalam contoh di atas, "test" adalah string literal dan data adalah variabel string. Cara yang lebih disukai adalah dengan menggunakan tipe byte daripada String karena operasi string membutuhkan lebih banyak gas dibandingkan dengan operasi byte. Soliditas menyediakan konversi bawaan antara byte ke string dan sebaliknya. Dalam Solidity kita dapat menetapkan String literal ke variabel tipe byte32 dengan mudah. Solidity menganggapnya sebagai byte32 literal.
pragma solidity ^0.5.0;
contract SolidityTest {
bytes32 data = "test";
}
Karakter Escape
Sr.No. | Deskripsi karakter |
---|---|
1 | \n Memulai baris baru. |
2 | \\ Garis miring terbalik |
3 | \' Kutipan Tunggal |
4 | \" Kutipan Ganda |
5 | \b Menghapus |
6 | \f Formulir Pakan |
7 | \r Kereta kembali |
8 | \t Tab |
9 | \v Tab Vertikal |
10 | \xNN Merepresentasikan nilai Hex dan menyisipkan byte yang sesuai. |
11 | \uNNNN Merupakan nilai Unicode dan menyisipkan urutan UTF-8. |
Konversi Byte ke String
Byte dapat diubah menjadi String menggunakan konstruktor string ().
bytes memory bstr = new bytes(10);
string message = string(bstr);
Contoh
Coba kode berikut untuk memahami bagaimana string bekerja di 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);
}
}
Jalankan program di atas menggunakan langkah-langkah yang disediakan di bab Aplikasi Solidity First .
Keluaran
0: string: 3