開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
Head First Go (Jay McGavren(著)、O'Reilly Media)のChapter 11(what cna you do? - Interfaces)、Pool Puzzle(339)の解答を求めてみる。
コード
package main import "fmt" 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 TryVehicle(vehicle Vehicle) { vehicle.Accelerate() vehicle.Steer("left") vehicle.Steer("right") vehicle.Brake() truck, ok := vehicle.(Truck) if ok { truck.LoadCargo("test cargo") } } func main() { TryVehicle(Truck("Fnord F180")) }
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)
$ go run sample2.go Speeding up Turning left Turning right Stopping Loading test cargo $
0 コメント:
コメントを投稿