オリジナルリンク:インタフェースの動作例を行きます
特徴:
1.インタフェースタイプであります
インターフェースはメソッドのセットを有するタイプであり、これらの方法は、インターフェースの動作を定義します。いずれかの方法なしで行くインタフェースのこのタイプは、空のインタフェースと呼ばれ、インタフェースを可能に
2.インタフェースは変数記憶実装の値であります
重要な用途のインタフェースを実装する複数の種類のインターフェースがある場合、これらのタイプの値を直接変数ストレージインタフェースを使用することができる、関数パラメータに反映されます。
3.空のインターフェース
タイプのインタフェースタイプはこのインタフェースを実装する前記すべてのメソッドを実装している場合、Aは、空インタフェースは方法ではない、すべてのタイプのインターフェースを実現することが可能である:インターフェース{}は、本明細書に定義されるような、空のインタフェースタイプであります{}。定義されたインタフェースは、{}関数の引数型である場合、これはその引数としての機能の任意のタイプに許容されるべきです
メインパッケージ インポート" FMT " 型動物のインターフェースを{ 食べる(食品ストリング) ()の呼び出し文字列 } 羊型構造体{ 食品列を } // 实现接口方法 FUNC(ヒツジ*ヒツジ)(食品食べる列){ sheep.food = 食品 } // 实现接口方法 FUNC(羊羊)コール()文字列{ fmt.Println(" 羊が食べている:" 、sheep.food) リターン 」ミリメートル" } メインFUNC(){ VARのヒツジ動物 // 两种写法一样 // ヒツジ=新しい(ヒツジ) 羊=&羊{食べ物:"" } sheep.Eat(" 草」) 歌う: = sheep.Call() FMT .Println(" 羊の歌:" 、歌います) }
結果は以下の通りであります:
[ルート@ wangjqテスト]#実行行くインタフェース.GO 羊が食べた:草 羊の歌を:ミリメートル