Update ja/02.6.md
This commit is contained in:
@@ -11,7 +11,7 @@ Goではとても繊細なinterfaceと呼ぶべき設計があります。これ
|
|||||||
|
|
||||||
Studentには3つのメソッドがあることになります:SayHi、Sing、BorrowMoneyです。EmployeeはSayHi、Sing、SpendSalaryです。
|
Studentには3つのメソッドがあることになります:SayHi、Sing、BorrowMoneyです。EmployeeはSayHi、Sing、SpendSalaryです。
|
||||||
|
|
||||||
上のような組み合わせをinterface(オブジェクトStudentとEmployeeに追加されます)と言います。例えばStudentとEmployeeでどちらもinterfaceであるSayHiとSingを実装します。この2つのオブジェクトはこのinterface型です。EmployeeはこのinterfaceであるSayHi、SingとBorrowMoneyは実装しません。EmployeeはBorrowMoneyメソッドを実装しないからです。
|
このようなメソッドの組み合わせはinterfaceと呼ばれます。そして、それらはStudentとEmployeeで実装されます。StudentとEmployeeはinterfaceのSayHiとSingを実装します。同時にEmployeeはBorrowMoneyを実装しません。そして、StudentはSpendSalaryを実装しません。なぜなら、EmployeeはBorrowMoneyメソッドを持っていません。また、StudentはSpendSalaryメソッドを持っていないからです。
|
||||||
### interface型
|
### interface型
|
||||||
interface型ではメソッドのセットを定義します。もしあるオブジェクトがインターフェースとなるすべてのメソッドを実装するとしたら、このオブジェクトはこのインターフェースを実装することになります。細かい文法は下の例を参考にしてください。
|
interface型ではメソッドのセットを定義します。もしあるオブジェクトがインターフェースとなるすべてのメソッドを実装するとしたら、このオブジェクトはこのインターフェースを実装することになります。細かい文法は下の例を参考にしてください。
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ interfaceの変数の中にはあらゆる型の数値を保存できること
|
|||||||
} else if value, ok := element.(Person); ok {
|
} else if value, ok := element.(Person); ok {
|
||||||
fmt.Printf("list[%d] is a Person and its value is %s\n", index, value)
|
fmt.Printf("list[%d] is a Person and its value is %s\n", index, value)
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("list[%d] is of a different type", index)
|
fmt.Printf("list[%d] is of a different type\n", index)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user