開発環境
- 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)、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 コメント:
コメントを投稿