Construtores de solidez

Neste artigo, vamos mergulhar nos construtores Solidity , sua sintaxe e como eles são usados ​​para criar contratos inteligentes na blockchain Ethereum.

Em qualquer linguagem de programação orientada a objetos, um construtor é o nome do método especial que é invocado sempre que um objeto dessa classe é inicializado.

Para o Solidity , é totalmente diferente. O Solidity tem uma declaração de construtor no contrato inteligente que é invocado apenas uma vez quando o contrato é implantado e usado para inicializar o estado do contrato.

Os compiladores criam construtores padrão se não forem explicitamente definidos.



O que são Construtores no Solidity?

Um construtor é uma função especial no Solidity que é executada quando um contrato é criado.

É usado para inicializar as variáveis ​​de estado do contrato.

O construtor tem o mesmo nome do contrato e é definido usando a palavra-chave constructor .


Como os construtores funcionam no Solidity?

Os construtores são executados quando um contrato é implantado no blockchain. Quando um usuário cria uma instância do contrato, o construtor é chamado para inicializar as variáveis ​​de estado do contrato.

Os argumentos para o construtor são passados ​​pelo usuário no momento da implantação.

O construtor Solidity pode ter qualquer número de argumentos e pode executar qualquer operação válida.

Depois que o construtor é executado, as variáveis ​​de estado do contrato são inicializadas e o contrato está pronto para ser usado.

Observação : o construtor não será chamado novamente durante a vigência do contrato.

Criação do Solidity Construtor

A palavra-chave do construtor é usada sem nenhum nome de função e é seguida por um modificador de acesso.

Esta é uma função opcional que inicializa as variáveis ​​de estado do contrato.

É possível que um construtor seja interno ou público , e um construtor interno marca o contrato como abstrato.

Sintaxe

A sintaxe de um construtor é mostrada abaixo:

constructor() <Access Modifier> {
}

O exemplo abaixo mostra o método para criar um construtor:

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
pragma solidity ^0.5.0;
// This is the Parent Contract //
contract SolidityTest {
string public mrx;
constructor() public{
mrx="Mr.Examples";
}
function get_Name() public view returns(string memory){
return mrx;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Usar Construtor com Argumento

Um construtor em solidity também pode ter vários argumentos.

O código fornecido fornece a compreensão do uso de um construtor com argumentos:

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
pragma solidity ^0.5.0;
// This is the Parent Contract //
contract SolidityTest {
string public mrx_name="Mr.Examples";
uint public age=21;
string public description="Visit Mr Examples !! if you want to learn knowledgeable facts regarding Programming Languages";
constructor(string memory mrx,uint mrx_age,string memory desc) public{
mrx=mrx_name;
mrx_age=age;
desc=description;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>
O exemplo a seguir fornece uma melhor compreensão sobre o construtor parametrizado de 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
pragma solidity ^0.5.0;
// Creating a contract
contract SolidityTest{
string public mrx="Mr.Examples";
address public mrx_1=msg.sender;
constructor(string memory ample,address ample_1) public {
ample=mrx;
ample_1=mrx_1;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Herança do Solidity Constructor

A seguir está o método de uso do construtor durante o processo de herança:

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
31
pragma solidity ^0.8.0;
contract SolidityTest { // This is the parent contract
uint256 public mrx;
constructor(uint256 _mrx) {
mrx = _mrx;
}
}
contract SolidityTest1 is SolidityTest { // This is the first Inherited Contract
uint256 public ample;
constructor(uint256 _mrx, uint256 _ample) SolidityTest(_mrx) {
ample = _ample;
}
}
contract SolidityTest2 is SolidityTest { // This is the second child class inherited from first child contract
uint256 public mrx_ample;
constructor(uint256 _mrx, uint256 _mrx_ample) SolidityTest(_mrx) {
mrx_ample = _mrx_ample;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Importância dos Construtores no Solidity

Os construtores são uma parte essencial da programação do Solidity. Eles são usados ​​para inicializar as variáveis ​​de estado do contrato, que são as variáveis ​​que armazenam os dados do contrato.

Observação : se as variáveis ​​de estado não forem inicializadas corretamente, o contrato pode não funcionar conforme o esperado.

Os construtores também permitem que os usuários forneçam informações ao contrato quando ele é criado.

Esta entrada pode ser usada para personalizar o comportamento do contrato ou para definir valores iniciais para as variáveis ​​de estado.


Conclusão

Os construtores de solidez nos permitem inicializar variáveis ​​de estado em nossos contratos e executar qualquer lógica de configuração necessária quando o contrato é implantado, a fim de executar a inicialização de variáveis ​​de estado em nossos contratos.

Isso significa que os construtores são capazes de receber qualquer número e combinação de argumentos e podem ser usados ​​para executar qualquer lógica de inicialização para fazer um contrato funcionar como pretendido.

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