2019年6月19日水曜日

開発環境

Head First Go (Jay McGavren(著)、O'Reilly Media)のChapter 11(what cna you do? - Interfaces)、Exercise(333)の解答を求めてみる。

コード

package main

import "fmt"

type Car string

func (c Car) Accelerate() {
 fmt.Println("Speeding up")
}
func (c Car) Brake() {
 fmt.Println("Stopping")
}
func (c Car) Steer(direction string) {
 fmt.Println("Turning", direction)
}

type Truck string

func (t Truck) Accelerate() {
 fmt.Println("Speeding up")
}
func (t Truck) Brake() {
 fmt.Println("Stopping")
}
func (t Truck) Steer(direction string) {
 fmt.Println("Turning", direction)
}
func (t Truck) LoadCargo(cargo string) {
 fmt.Println("Loading", cargo)
}

type Vehicle interface {
 Accelerate()
 Brake()
 Steer(string)
}

func main() {
 var vehicle Vehicle = Car("yoda Yarvic")
 vehicle.Accelerate()
 vehicle.Steer("left")

 vehicle = Truck("Fnord F180")
 vehicle.Brake()
 vehicle.Steer("right")
}

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)

$ go run sample1.go
Speeding up
Turning left
Stopping
Turning right
$ 

0 コメント:

コメントを投稿