📜  Solidity – 构造函数(1)

📅  最后修改于: 2023-12-03 15:20:10.854000             🧑  作者: Mango

Solidity - 构造函数

Solidity 是一种智能合约编程语言,是以太坊区块链上的智能合约的首选语言之一。构造函数是 Solidity 中用于初始化合约状态的特殊函数,在智能合约的部署过程中会被自动执行。

基本语法

Solidity 中的构造函数使用以下语法定义:

constructor ([参数列表]) [可见性] {
  // 初始化逻辑
}

其中,[参数列表] 是可选的,可被用于传递参数给构造函数;[可见性] 也是可选的,用于限制合约中其他函数对构造函数的访问权限。

以下是一个示例:

contract Example {
  uint public myValue;
  
  constructor (uint initialValue) public {
    myValue = initialValue;
  }
}

这段代码定义了一个名为 Example 的合约,其中包含一个名为 myValue 的公共属性和一个构造函数。构造函数的参数为 initialValue,并将其赋值给 myValue

特殊性质

构造函数具有以下特殊性质:

  • 名称必须与合约名称相同;
  • 只能在合约部署时被执行一次;
  • 如果没有明确定义任何构造函数,Solidity 会自动添加一个默认构造函数。
示例

以下是另一个示例,展示了如何使用构造函数来初始化合约状态:

contract Example {
  uint[] public myArray;
  
  constructor () public {
    myArray.push(1);
    myArray.push(2);
    myArray.push(3);
  }
}

这个 Example 合约在部署时,将会初始化 myArray 是一个数组,其中包含 [1, 2, 3] 这三个元素。

总结

Solidity 中的构造函数是初始化合约状态的重要方法。在定义构造函数时,需要遵守一些基本语法规则,并注意其特殊性质和用途。