Menu
Coddy logo textTech

インターフェースとは?

CoddyのGOジャーニー「論理とフロー」セクションの一部 — レッスン 12/68。

Goにおけるインターフェースは、ある型がどのような振る舞いを持つべきかを定義する契約のようなものであり、それらの振る舞いがどのように実装されるかは指定しません。それは、あるものが何ができるかを記述するメソッドシグネチャの集まりであると考えてください。

インターフェースをよりよく理解するために、家にあるコンセントを想像してみてください。

コンセントは特定の形状をしており、電力を供給しますが、そこにどのようなデバイスを接続するかは気にしません。ランプであれ、スマートフォンの充電器であれ、コンピュータであれ、正しいプラグの形状をしているデバイスであれば、接続して電力を受け取ることができます。コンセントは「インターフェース」、つまり接続のための要件を定義しているのです。

Goでは、インターフェースも同様に機能します。それは、ある型がそのインターフェースに「プラグイン」するために持っていなければならない一連のメソッドシグネチャを定義します。必要なメソッドをすべて備えている型は、その型が他に何をしようと、あるいはそれらのメソッドをどのように実装していようと、自動的にそのインターフェースを満たします。

この概念は、特定の動作を実行できるあらゆる型で動作するコードを記述できるため強力であり、プログラムの柔軟性と再利用性を高めます。さまざまなデバイスがすべて同じ電源コンセントを使用できるのと同じように、異なるGoの型も、必要なメソッドを持っている限り、すべて同じインターフェースを満たすことができます。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

チートシート

Goにおけるインターフェースは、型が実装しなければならないメソッドシグネチャのコントラクト(規約)を定義します。必要なメソッドをすべて備えている型は、自動的にそのインターフェースを満たします。

インターフェースを使用すると、特定の動作を実行できるあらゆる型で動作する柔軟なコードを記述できるようになります。これは、適切なプラグの形状をしていれば、異なるデバイスでも同じ電源コンセントを使用できるのと似ています。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン