Interfaces
介面中的變數
我試圖實現我的第一個界面。但是當我嘗試添加一個新變數時,Remix 告訴我不能在介面中添加變數。
設置擴展的solidity文件將具有的固定變數是否有意義?還是我犯了一個概念錯誤?
pragma solidity ^0.4.24; interface testI { uint id; function addI(uint _n) external; }
一些概念:
抽象合約只實現了一些已聲明的函式,而其他的則未實現。當選擇使用抽象合約時,通常是因為我們有一組具有共同功能的合約,但在每個合約中都有額外的獨特功能。所以我們在抽象合約中實現了這個通用功能,因此我們可以在這個合約中聲明實現這個功能所需的任何狀態變數。
介面是一組聲明的函式,沒有一個被實現。當選擇使用介面時,通常是因為我們有一組具有共同功能的合約,但在每個合約中具有不同的目的(因此不同的實現)。由於沒有實現介面中聲明的函式,因此狀態變數在此範圍內有點“不合適”,並且語言不允許它們。此外,所有函式都必須聲明
external
。