Solidity - Dizeler

Solidity, hem çift tırnak (") hem de tek tırnak (') kullanarak String değişmezini destekler. String türünde bir değişken bildirmek için bir veri türü olarak dize sağlar.

pragma solidity ^0.5.0;

contract SolidityTest {
   string data = "test";
}

Yukarıdaki örnekte, "test" bir dize değişmezidir ve veri bir dize değişkenidir. Dize işlemi bayt işlemine kıyasla daha fazla gaz gerektirdiğinden, String yerine bayt türlerinin kullanılması daha çok tercih edilen yöntemdir. Solidity, baytlar arasında dizgeye ve tam tersi arasında dahili dönüşüm sağlar. Solidity'de String değişmezini bir byte32 tipi değişkene kolayca atayabiliriz. Solidity, bunu bir byte32 değişmezi olarak kabul eder.

pragma solidity ^0.5.0;

contract SolidityTest {
   bytes32 data = "test";
}

Kaçış Karakterleri

Sr.No. Karakter açıklaması
1

\n

Yeni bir satır başlatır.

2

\\

Ters eğik çizgi

3

\'

Tek alıntı

4

\"

Çift Alıntı

5

\b

Geri tuşu

6

\f

Form besleme

7

\r

Satırbaşı

8

\t

Sekme

9

\v

Dikey Sekme

10

\xNN

Hex değerini temsil eder ve uygun baytları ekler.

11

\uNNNN

Unicode değerini temsil eder ve UTF-8 dizisi ekler.

Bayt'tan Dize Dönüşümüne

Baytlar, string () yapıcısı kullanılarak String'e dönüştürülebilir.

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

Misal

Solidity'de dizenin nasıl çalıştığını anlamak için aşağıdaki kodu deneyin.

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 bölümünde verilen adımları kullanarak yukarıdaki programı çalıştırın .

Çıktı

0: string: 3