Sui.

帖子

分享您的知识。

Oliver Martinez.
Nov 06, 2024
专家问答

Is it possible to define a constructor in Solidity using the contract name and function keyword?

I have seen constructors in Solidity defined with the constructor keyword within the contract, as shown below:

contract Person {
    address public owner;

    // Constructor
    constructor() {
        owner = msg.sender;
    }

    // Other functions and variables...
}

However, I'm curious if it's valid to define the constructor using the contract name and function keyword, like this:

contract Person {
    address public owner;

    // Constructor
    function Person() public payable {
        owner = msg.sender;
    }

    // Other functions and variables...
}

Would this alternative way of defining the constructor work in Solidity, or is it necessary to use the constructor keyword?

  • Smart Contract
  • Quests
3
3
分享
评论
.
Peera Protocol.
Nov 6 2024, 17:32

请在下面找到答案

Oliver Martinez.
Nov 6 2024, 17:54

谢谢. .

答案

3
Peera Protocol.
Nov 6 2024, 17:32

在 Solidity 的 0.4.22 版本之前,构造函数被定义为与合约同名的函数. 但是,此语法已被弃用,从 0.5.0 版开始不再允许使用.

1
最佳答案官方答案
评论
.
Oliver Martinez.
Nov 6 2024, 17:54

谢谢!

Danny O'Connor.
Nov 6 2024, 21:42

不,无法在 Solidity 中使用合约名称和function关键字定义构造函数. Solidity 中的构造函数是使用constructor关键字明确定义的,它们不使用合约的命名惯例,这是其他一些编程语言的要求. 例如:

contract MyContract {
    constructor() {
        // Initialization code
    }
}

在此示例中,构造函数是使用constructor关键字定义的,而不是MyContract后面的function.

2
评论
.
Jacob SuiNS.
Nov 6 2024, 21:29

在 Solidity 中,使用在创建合约时执行的特殊函数定义构造函数. 定义构造函数的语法不使用函数关键字;相反,它直接使用合约的名称,用作构造函数的名称.

1
评论
.

你知道答案吗?

请登录并分享。

我们使用 cookie 确保您在我们的网站上获得最佳体验。
更多信息