Solidity - Constructors

Hàm tạo là một hàm đặc biệt được khai báo bằng cách sử dụng constructortừ khóa. Nó là một funtion tùy chọn và được sử dụng để khởi tạo các biến trạng thái của một hợp đồng. Sau đây là các đặc điểm chính của một hàm tạo.

  • Một hợp đồng chỉ có thể có một phương thức khởi tạo.

  • Mã khởi tạo được thực thi một lần khi hợp đồng được tạo và nó được sử dụng để khởi tạo trạng thái hợp đồng.

  • Sau khi mã khởi tạo được thực thi, mã cuối cùng được triển khai vào blockchain. Mã này bao gồm các chức năng công khai và mã có thể truy cập thông qua các chức năng công cộng. Mã cấu tạo hoặc bất kỳ phương thức nội bộ nào chỉ được sử dụng bởi hàm tạo không được bao gồm trong mã cuối cùng.

  • Một phương thức khởi tạo có thể là công khai hoặc nội bộ.

  • Một hàm tạo bên trong đánh dấu hợp đồng là trừu tượng.

  • Trong trường hợp không có phương thức khởi tạo nào được xác định, thì một phương thức khởi tạo mặc định sẽ có trong hợp đồng.

pragma solidity ^0.5.0;

contract Test {
   constructor() public {}
}
  • Trong trường hợp, hợp đồng cơ sở có hàm tạo với các đối số, mỗi hợp đồng dẫn xuất phải chuyển chúng.

  • Hàm tạo cơ sở có thể được khởi tạo trực tiếp bằng cách sau:

pragma solidity ^0.5.0;

contract Base {
   uint data;
   constructor(uint _data) public {
      data = _data;   
   }
}
contract Derived is Base (5) {
   constructor() public {}
}
  • Hàm tạo cơ sở có thể được khởi tạo gián tiếp bằng cách sau:

pragma solidity ^0.5.0;

contract Base {
   uint data;
   constructor(uint _data) public {
      data = _data;   
   }
}
contract Derived is Base {
   constructor(uint _info) Base(_info * _info) public {}
}
  • Không được phép sử dụng các cách Trực tiếp và Gián tiếp để khởi tạo trình tạo hợp đồng cơ sở.

  • Nếu hợp đồng dẫn xuất không chuyển (các) đối số đến phương thức tạo hợp đồng cơ sở thì hợp đồng dẫn xuất sẽ trở thành trừu tượng.