Solidité - Cordes

Solidity prend en charge le littéral String en utilisant à la fois des guillemets doubles (") et des guillemets simples ('). Il fournit une chaîne comme type de données pour déclarer une variable de type String.

pragma solidity ^0.5.0;

contract SolidityTest {
   string data = "test";
}

Dans l'exemple ci-dessus, «test» est une chaîne littérale et data est une variable chaîne. Une manière plus préférée consiste à utiliser des types d'octets au lieu de String car l'opération de chaîne nécessite plus de gaz que l'opération d'octet. Solidity fournit une conversion intégrée d'octets en chaîne et vice versa. Dans Solidity, nous pouvons facilement affecter un littéral String à une variable de type byte32. Solidity le considère comme un littéral byte32.

pragma solidity ^0.5.0;

contract SolidityTest {
   bytes32 data = "test";
}

Personnages de fuite

N ° Sr. Caractère et description
1

\n

Démarre une nouvelle ligne.

2

\\

Antislash

3

\'

Simple citation

4

\"

Double citation

5

\b

Retour arrière

6

\f

Form Feed

sept

\r

Retour chariot

8

\t

Languette

9

\v

Onglet vertical

dix

\xNN

Représente la valeur hexadécimale et insère les octets appropriés.

11

\uNNNN

Représente la valeur Unicode et insère la séquence UTF-8.

Conversion d'octets en chaîne

Les octets peuvent être convertis en String à l'aide du constructeur string ().

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

Exemple

Essayez le code suivant pour comprendre comment la chaîne fonctionne dans 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);
   }
}

Exécutez le programme ci-dessus en suivant les étapes fournies dans le chapitre Application Solidity First .

Production

0: string: 3