Solidez - Cordas
Solidity oferece suporte ao literal String usando aspas duplas (") e simples ('). Ele fornece string como um tipo de dados para declarar uma variável do tipo String.
pragma solidity ^0.5.0;
contract SolidityTest {
string data = "test";
}
No exemplo acima, "teste" é um literal de string e data é uma variável de string. A maneira mais preferida é usar tipos de byte em vez de String, pois a operação de string requer mais gás em comparação com a operação de byte. Solidity fornece conversão embutida entre bytes em string e vice-versa. No Solidity, podemos atribuir o literal String a uma variável do tipo byte32 facilmente. O Solidity o considera como um literal byte32.
pragma solidity ^0.5.0;
contract SolidityTest {
bytes32 data = "test";
}
Personagens de Fuga
Sr. Não. | Descrição do personagem |
---|---|
1 | \n Inicia uma nova linha. |
2 | \\ Barra invertida |
3 | \' Citação única |
4 | \" Citação dupla |
5 | \b Backspace |
6 | \f Feed de formulário |
7 | \r Retorno de carruagem |
8 | \t Aba |
9 | \v Guia Vertical |
10 | \xNN Representa o valor Hex e insere os bytes apropriados. |
11 | \uNNNN Representa o valor Unicode e insere a sequência UTF-8. |
Conversão de bytes para string
Bytes podem ser convertidos em String usando o construtor string ().
bytes memory bstr = new bytes(10);
string message = string(bstr);
Exemplo
Tente o código a seguir para entender como a string funciona no 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);
}
}
Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .
Resultado
0: string: 3