2018年9月20日木曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド - 独自の構造を使う)、自分で考えてみよう(p. 239)をGoで取り組んでみる。

自分で考えてみよう(p. 239)

コード(Emacs)

package main

import "fmt"

type Turtle struct {
 name    string
 species string
 age     int
}

func happyBirthday0(t Turtle) {
 t.age += 1
 fmt.Printf("誕生日おめでとう、%s!これで%d才ですね!\n", t.name, t.age)
}
func (t Turtle) happyBirthday0() {
 t.age += 1
 fmt.Printf("誕生日おめでとう、%s!これで%d才ですね!\n", t.name, t.age)
}

func happyBirthday(t *Turtle) {
 t.age += 1
 fmt.Printf("誕生日おめでとう、%s!これで%d才ですね!\n", t.name, t.age)
}

func (t *Turtle) happyBirthday() {
 t.age += 1
 fmt.Printf("誕生日おめでとう、%s!これで%d才ですね!\n", t.name, t.age)
}
func main() {
 myrtle := Turtle{"マートル", "オサガメ", 99}
 happyBirthday0(myrtle)
 fmt.Printf("%sの年齢は%d才です。\n", myrtle.name, myrtle.age)
 myrtle.happyBirthday0()
 fmt.Printf("%sの年齢は%d才です。\n", myrtle.name, myrtle.age)
 happyBirthday(&myrtle)
 fmt.Printf("%sの年齢は%d才です。\n", myrtle.name, myrtle.age)
 myrtle.happyBirthday()
 fmt.Printf("%sの年齢は%d才です。\n", myrtle.name, myrtle.age)

 fmt.Println()

 myrtle1 := &Turtle{"マートル", "オサガメ", 99}
 happyBirthday0(*myrtle1)
 fmt.Printf("%s才の年齢は%d才です。\n", myrtle1.name, myrtle1.age)
 myrtle1.happyBirthday0()
 fmt.Printf("%s才の年齢は%d才です。\n", myrtle1.name, myrtle1.age)
 happyBirthday(myrtle1)
 fmt.Printf("%s才の年齢は%d才です。\n", myrtle1.name, myrtle1.age)
 myrtle1.happyBirthday()
 fmt.Printf("%s才の年齢は%d才です。\n", myrtle1.name, myrtle1.age)
}

入出力結果(Terminal)

$ go run sample4.go
誕生日おめでとう、マートル!これで100才ですね!
マートルの年齢は99才です。
誕生日おめでとう、マートル!これで100才ですね!
マートルの年齢は99才です。
誕生日おめでとう、マートル!これで100才ですね!
マートルの年齢は100才です。
誕生日おめでとう、マートル!これで101才ですね!
マートルの年齢は101才です。

誕生日おめでとう、マートル!これで100才ですね!
マートル才の年齢は99才です。
誕生日おめでとう、マートル!これで100才ですね!
マートル才の年齢は99才です。
誕生日おめでとう、マートル!これで100才ですね!
マートル才の年齢は100才です。
誕生日おめでとう、マートル!これで101才ですね!
マートル才の年齢は101才です。
$

0 コメント:

コメントを投稿