開発環境
- 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 10(keep it to yourself - Encapsulation and Embedding)、Exercise(314)の解答を求めてみる。
コード
landmark.go
package geo import "errors" type Landmark struct { name string Coordinates } func (l *Landmark) Name() string { return l.name } func (l *Landmark) SetName(name string) error { if name == "" { return errors.New("invalid name") } l.name = name return nil }
sample3.go
package main import ( "fmt" "heafirstgo/geo" "log" ) func main() { location := geo.Landmark{} err := location.SetName("The Googleplex") if err != nil { log.Fatal(err) } err = location.SetLatitude(37.42) if err != nil { log.Fatal(err) } err = location.SetLongitude(-122.08) if err != nil { log.Fatal(err) } fmt.Println(location.Name()) fmt.Println(location.Latitude()) fmt.Println(location.Longitude()) }
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)
$ go run sample3.go The Googleplex 37.42 -122.08 $
0 コメント:
コメントを投稿