Update ja/02.6.md

This commit is contained in:
38elements
2017-08-05 00:12:38 +09:00
committed by GitHub
parent 27d9bce0ac
commit d37a770059

View File

@@ -11,7 +11,7 @@ Goではとても繊細なinterfaceと呼ぶべき設計があります。これ
StudentにはつのメソッドがあることになりますSayHi、Sing、BorrowMoneyです。EmployeeはSayHi、Sing、SpendSalaryです。 StudentにはつのメソッドがあることになりますSayHi、Sing、BorrowMoneyです。EmployeeはSayHi、Sing、SpendSalaryです。
のような組み合わせinterface(オブジェクトStudentとEmployeeに追加されます)と言います。例えばStudentとEmployeeでどちらもinterfaceであるSayHiとSingを実装します。このつのオブジェクトはこのinterface型です。EmployeeはこのinterfaceであるSayHi、SingとBorrowMoneyは実装しません。EmployeeはBorrowMoneyメソッドを実装しないからです。 のようなメソッドの組み合わせinterfaceと呼ばれます。そして、それらはStudentとEmployeeで実装されますStudentとEmployeeinterfaceSayHiと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)
} }
} }
} }