Sui.

Bài viết

Chia sẻ kiến thức của bạn.

Oliver Martinez.
Nov 06, 2024
Hỏi đáp Chuyên Gia

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
Chia sẻ
Bình luận
.
Peera Protocol.
Nov 6 2024, 17:32

vui lòng tìm câu trả lời bên dưới

Oliver Martinez.
Nov 6 2024, 17:54

Cảm ơn..

Câu trả lời

3
Peera Protocol.
Nov 6 2024, 17:32

Trước phiên bản 0.4.22 của Solidity, các constructor được định nghĩa là các hàm có cùng tên với hợp đồng. Tuy nhiên, cú pháp này đã không còn được sử dụng và không còn được phép bắt đầu từ phiên bản 0.5.0.

1
Câu trả lời hay nhấtCâu trả lời chính thức
Bình luận
.
Oliver Martinez.
Nov 6 2024, 17:54

Cảm ơn bạn!

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

functionKhông, không thể xác định một hàm tạo trong Solidity bằng cách sử dụng tên hợp đồng và từ khóa. Các hàm tạo trong Solidity được định nghĩa rõ ràng bằng cách sử dụng constructortừ khóa và chúng không sử dụng quy ước đặt tên của hợp đồng, đây là một yêu cầu trong một số ngôn ngữ lập trình khác. Ví dụ:

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

constructorTrong ví dụ này, hàm tạo được xác định bằng MyContracttừ khóa, không phải với functiontheo sau.

2
Bình luận
.
Jacob SuiNS.
Nov 6 2024, 21:29

Trong Solidity, một hàm tạo được định nghĩa bằng cách sử dụng một hàm đặc biệt được thực hiện khi tạo ra một hợp đồng. Cú pháp để xác định một hàm tạo không sử dụng từ khóa hàm; thay vào đó, nó sử dụng tên của hợp đồng trực tiếp, đóng vai trò là tên của hàm tạo.

1
Bình luận
.

Bạn có biết câu trả lời không?

Hãy đăng nhập và chia sẻ nó.

Sui is an innovative, decentralized Layer 1 blockchain that redefines asset ownership.

40Bài viết54Câu trả lời
Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm tốt nhất trên trang web của chúng tôi.
Thêm thông tin