Guia rápido para variáveis ​​em Solidity

Este artigo visa fornecer um melhor conhecimento sobre variável de solidez e seus tipos com exemplos, a fim de obter uma compreensão clara do tipo de variável de solidez e seu uso na construção de contratos de solidez .



O que é Variável?

Na programação de computadores, uma variável é um local nomeado na memória que armazena um valor ou uma referência a um valor. As variáveis ​​são usadas para armazenar e manipular dados dentro de um programa e podem ser modificadas durante a execução do programa. O valor de uma variável pode ser de diferentes tipos de dados, como:

  • Números
  • Texto
  • boleano
  • Objetos

Variáveis ​​de Solidez

Ao escrever um programa no Solidity , você precisará usar várias variáveis ​​para armazenar vários dados.

A variável solidity nada mais é do que um local de memória reservado onde os valores podem ser armazenados.

Uma variável ocupa algum espaço de memória quando é criada.

Você pode querer armazenar dados de diferentes tipos, incluindo:

  • Personagem
  • personagem largo
  • inteiro
  • Ponto flutuante
  • Ponto flutuante duplo
  • Boleano.

A alocação de memória e as limitações de armazenamento de dados de um local de memória reservado são determinadas pelo sistema operacional com base no tipo de dados da variável.


Tipos de variáveis ​​de solidez

O Solidity é uma linguagem de tipagem estática, o que significa que cada variável deve ser declarada com um tipo de dados. Nesta seção do artigo, exploraremos os tipos de variáveis ​​do Solidity e como declará-las e usá-las em contratos inteligentes.

Um dos aspectos mais importantes ao escrever um contrato inteligente do Solidity é escolher o tipo de dados certo para suas variáveis.

O Solidity oferece uma rica variedade de tipos de dados integrados e definidos pelo usuário.

O Solidity fornece aos programadores uma ampla variedade de tipos de dados pré-existentes e personalizáveis ​​para escolher.

Existem sete tipos básicos de dados de programação do Solidity listados abaixo:

tipos Palavras-chave Visão geral
boleano bool As variáveis ​​booleanas do Solidity podem assumir apenas dois valores: verdadeiro ou falso. Decisões ou condições binárias são comumente representadas por este símbolo. Como exemplo, você pode usar uma variável booleana para verificar se um determinado endereço foi aprovado ou não para acessar um determinado recurso.
inteiro int8,int16

int32, int64,

int128 e

int256.

No Solidity, os desenvolvedores podem armazenar diferentes intervalos de valores usando vários tipos inteiros. Existem seis tipos de números inteiros: int8, int16, int32, int64, int128 e int256. Tipos inteiros podem armazenar valores diferentes, dependendo de seu tamanho. O valor de uma variável int8 pode variar entre -128 e 127, enquanto o valor de uma variável int256 pode variar entre -2^255 e 2^255 -1.
Número inteiro sem sinal uint8,uint16

uint32,uint64

uint128 e

uint256.

As variáveis ​​inteiras sem sinal do Solidity só podem armazenar valores positivos. No uso comum, representa quantidades ou contagens. Os tipos inteiros não assinados suportados pelo Solidity incluem uint8, uint16, uint32, uint64, uint128 e uint256. Tipos inteiros não assinados podem armazenar um intervalo de valores com base em seu tamanho. O valor de uma variável uint8 pode variar de 0 a 255, enquanto o valor de uma variável uint256 pode variar de 0 a 2^256 – 1.
Endereço endereço Uma variável de endereço Solidity representa um endereço Ethereum. O valor geralmente é expresso como uma string hexadecimal composta por 20 bytes. Várias funções incorporadas estão disponíveis no Solidity que podem ser implementadas para trabalhar com variáveis ​​de endereço. Você pode verificar o saldo de um endereço usando a função de saldo, enquanto pode enviar Ether para um endereço usando a função de transferência.
Corda corda O Solidity usa variáveis ​​de string para armazenar dados de texto. Qualquer sequência de caracteres Unicode pode ser armazenada neste campo e não tem tamanho limitado. As variáveis ​​de string podem ser manipuladas com as funções de string integradas do Solidity. O comprimento da string pode ser obtido com a função length, e a concatenação da string pode ser realizada com a função concat.
bytes bytes

bytes2

bytes4

O Solidity usa variáveis ​​de bytes para armazenar dados binários. Qualquer sequência de bytes pode ser armazenada nele e seu tamanho não é fixo. O Solidity vem com várias funções integradas que podem ser usadas para manipular variáveis ​​de bytes. O comprimento de uma variável de bytes pode ser calculado pela função length, e uma variável de bytes pode ser combinada usando a função concat.
Ponto fixo fixo8x1, fixo16x8, fixo24x8, fixo32x8 e fixo40x8 Existem variáveis ​​de ponto fixo no Solidity que representam números decimais com um número específico de dígitos após o ponto decimal. Existem vários tipos de pontos fixos no Solidity, incluindo fixed8x1, fixed16x8, fixed24x8, fixed32x8 e fixed40x8. Inicialmente, o nome do tipo indica o número de bits usados ​​para a parte inteira, enquanto o segundo número indica a parte fracionária. Por exemplo, uma variável fixed8x1 pode armazenar valores com uma casa decimal, enquanto uma variável fixed16x8 pode armazenar valores com oito casas decimais.
IMPORTANTE : Como alternativa, os números de ponto fixo podem ser expressos como fixedMxN/ufixedMxN, onde M representa quantos bits cada tipo leva e N representa quantas casas decimais ele contém.
M deve ser divisível por 8 e tem um intervalo de 8 a 256.
O valor de N pode variar de 0 a 80.

Endereço Variável Solidity

O endereço contém os 20 bytes que representam o tamanho de um endereço Ethereum .

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract SolidityTest{
address public mrx_address;
constructor() public{
mrx_address=address(this);
}
function get_Address() public view returns(address){
return mrx_address;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Depois de compilar o exemplo acima, você terá a mesma saída da imagem abaixo:

Saída de endereço de variáveis ​​de Solidity


Variável de inteiros de solidez

O tipo de dados inteiros em contratos de solidez pode ser usado da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest{
function show_value() public pure returns(int8,int16,int32,int64,int128,int256){
int8 mrx_1=0;
int16 mrx_2=-32761;
int32 mrx_3= -2147483641;
int64 mrx_4=-9223372036854775701;
int128 mrx_5=134217721231231231231231231;
int256 mrx_6=1231231231231231231543534545723423412312;
return (mrx_1,mrx_2,mrx_3,mrx_4,mrx_5,mrx_6);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Solidity Unsigned Inteiros

O exemplo dado ilustra todos os tipos de dados inteiros não assinados em solidity:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest{
function show_value() public pure returns(uint8,uint16,uint32,uint64,uint128,uint256){
uint8 mrx_1=0;
uint16 mrx_2=32161;
uint32 mrx_3= 2147483431;
uint64 mrx_4=9223372053443545701;
uint128 mrx_5=13421772124236224231231231;
uint256 mrx_6=123123123454325345354322331543534545723423412312;
return (mrx_1,mrx_2,mrx_3,mrx_4,mrx_5,mrx_6);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Booleano em solidez

Existem apenas dois tipos de valores booleanos na programação de solidity que são mostrados abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest{
function show_value() public pure returns(bool,bool){
bool is_Solidity_Complex=false;
bool is_Mr_Examples_making_it_easier_for_you_to_understand_solidity=true;
return (is_Solidity_Complex,is_Mr_Examples_making_it_easier_for_you_to_understand_solidity);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Variável de Cordas de Solidez

O tipo de dados inteiros em contratos de solidez pode ser usado da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest{
function show_string_name(string memory mrx) public pure returns(string memory){
return mrx;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Variável de ponto fixo de solidez

O tipo de dados inteiros em contratos de solidez pode ser usado da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest{
ufixed8x1 public constant Discount_percentage_in_points = 1.5;
function calculatePrice(ufixed8x1 user_amount) public pure returns (ufixed8x1) {
return user_amount * Discount_percentage_in_points;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Bytes em solidez

O tipo de dados inteiros em contratos de solidez pode ser usado da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pragma solidity ^0.8.0;
contract SolidityTest{
function printS_String_From_Bytes(string memory ample) public pure returns (bytes memory) {
// Enter the Following input in the Input box and then see the desired output //
// 0x4865792055736572202121204920686f706520796f752077696c6c20626520686176696e672066756e206c6561726e696e6720736f6c69646974792066726f6d204d722e4578616d706c6573;
return bytes(ample);
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Conclusão

Qualquer linguagem de programação depende muito de variáveis, pois são os blocos de construção para elas.

Da mesma forma, no Solidity, existem diferentes tipos de dados para representar tipos distintos de dados. Tipos de dados básicos como:

  • bool
  • int
  • uint
  • endereço
  • corda
  • fixo
  • não corrigido
  • bytes

juntamente com os mais avançados, como structs , arrays e mappings , compreendem tipos de dados de variáveis ​​do Solidity.

É crucial ter uma boa compreensão desses tipos de dados e seu uso efetivo para criar contratos inteligentes seguros e eficientes.

Observação : ao selecionar um tipo de dados, é essencial levar em consideração o tamanho e a precisão dos dados, bem como quaisquer limitações de custo de armazenamento ou gás.
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone