開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Go (プログラミング言語)
- Introducing Go: Build Reliable, Scalable Programs Caleb Doxsey (著) (参考書籍)
初めてのC# 第2版 (Jesse Liberty (著)、Brian MacDonald (著)、日向 俊二 (翻訳)、オライリージャパン)の10章(継承とポリモーフィズム)、11.9(練習問題)、問題11-3.をGoで取り組んでみる。
コード(Emacs)
package main
import "fmt"
type sound interface {
ring()
}
type telephone struct {
phonetype string
}
type digitalPhone struct {
telephone
}
func (dp digitalPhone) ring() {
fmt.Println("Digital Phone: " + dp.phonetype)
}
type talkingPhone struct {
telephone
}
func (tp talkingPhone) ring() {
fmt.Println("Talking PHone: " + tp.phonetype)
}
func main() {
dp := digitalPhone{telephone{phonetype: "Digital"}}
tp := talkingPhone{telephone{phonetype: "Talking"}}
ps := []sound{dp, tp}
for _, p := range ps {
p.ring()
}
}
入出力結果(Terminal)
$ go run sample3.go Digital Phone: Digital Talking PHone: Talking $
0 コメント:
コメントを投稿