開発環境
- macOS High Sierra - Apple (OS)
- Emacs (Text Editor)
- Go (プログラミング言語)
Introducing Go: Build Reliable, Scalable Programs (Caleb Doxsey (著)、O'Reilly Media)のChapter 7.(Structs and Interfaces)、Exercises(No. 1315)2.を取り組んでみる。
コード(Emacs)
package main
import "fmt"
type Animal struct {
name string
weight, height float64
}
type Voice interface {
speak()
}
type Dog struct {
Animal
}
func (dog *Dog) speak() {
fmt.Println("ワンワン!")
}
type Cat struct {
Animal
}
func (cat *Cat) speak() {
fmt.Println("にゃーにゃー")
}
func speak(voices ...Voice) {
for _, voice := range voices {
voice.speak()
}
}
func main() {
dog := Dog{}
cat := Cat{}
dog.name = "dog1"
dog.weight = 10
dog.height = 20
cat.name = "cat1"
cat.weight = 30
cat.height = 40
fmt.Println(dog)
fmt.Println(cat)
speak(&dog, &cat)
}
入出力結果(Terminal)
$ go run sample2.go
{{dog1 10 20}}
{{cat1 30 40}}
ワンワン!
にゃーにゃー
$
0 コメント:
コメントを投稿