File
構造体を見ると、 andインターフェイスと関数とまったく同じ and 関数がRead()
あります。しかし、パッケージはパッケージ内のどこにもありません(インポートされていません)。これは、インターフェイスを使用するためにインポートする必要がまったくないということですか? 定義がインターフェイスと同じである限り、それがorインターフェイスの一部であることを暗示できますか?Write()
io.Writer
io.Reader
Read()
Write()
io
File
Read()
io.Writer
io.Reader
user1529891
質問する
1569 次
2 に答える
11
インターフェースが package で使用されていないため、Packageは packageをos
インポートしません。io
io.Reader
os
正しいシグネチャを持つメソッドがあるため、型*File
はたまたま実装されます。この実装関係は暗黙的であり、これを明示的にする必要はなく、可能でもありません(たとえば、Java の with のように)。io.Reader
Read
implements ISomeThing
あなたは尋ねました:「これは、インターフェイスを使用するためにインポートする必要がまったくないということですか?」正式な答えは次のとおりです。使用したい場合は、するio.Reader
必要がありますimport "io"
。
しかし、インターフェイスの実装/満足は、このインターフェイスの使用ではありません。適切なメソッドを持つだけで、任意のタイプが任意のインターフェイス (Jet が発明されていない将来のものであっても) を実装します。
于 2013-07-09T22:58:24.317 に答える