Solidity

為什麼 VRFConsumerBaseV2(vrfCoordinator) 在建構子聲明中?

  • August 9, 2022

我是 Solidity 的新手,正在學習 Patrick Collins 的線上課程。在下面的程式碼中,我想知道為什麼VRFConsumerBaseV2(vrfCoordinator)在建構子聲明中包含。我認為函式聲明只包括修飾符和可見性之類的東西。

constructor(uint64 subscriptionId) VRFConsumerBaseV2(vrfCoordinator) {
 COORDINATOR = VRFCoordinatorV2Interface(vrfCoordinator);
 LINKTOKEN = LinkTokenInterface(link);
 s_owner = msg.sender;
 s_subscriptionId = subscriptionId; 
}

您正在編寫的契約正在實施(擴展/繼承自)VRFConsumerBaseV2。這不是一個函式聲明——事實上你已經註意到它是一個有點不同的建構子聲明。

在solidity 中,建構子可以使用您提到的這種語法來實例化父類。

請參閱此處的文件

您所指的這種特定樣式使用派生建構子的修飾符。它類似於正常函式上的修飾函式,但不同之處在於它們用於建構子中,而建構子是正常函式的子類型。

引用自:https://ethereum.stackexchange.com/questions/133260