Interface
Interfaceについて学習します
Interfaceはabstractと似ていますが、以下のような違いがあります
- 変数は宣言できない
- 実装を伴う関数は宣言できない
- 関数のvisibilityはexternalのみ
主に外部コントラクトの関数と連携するための規約として機能します
宣言
interfaceとして宣言する
interface Sample {
function sampleFunction() external;
}
利用
Interface(address).functionという記述によって外部コントラクトの関数を呼び出すことができる
interface ISampleInterface {
function sampleFunction() external returns(uint);
}
contract Sample {
function useSampleFunction() returns(uint) {
return ISampleInterface(address(0xabc...)).sampleFunction();
}
}