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