2020年1月29日水曜日

開発環境

入門Goプログラミング (Nathan Youngman(著)、Roger Peppé(著)、吉川 邦夫(監修, 翻訳)、翔泳社)のUNIT 4(コレクション)、LESSON 17(スライス)の練習問題の解答を求めてみる。

コード

package main

import (
 "fmt"
 "strings"
)

// Planets ...
type Planets []string

func (planets Planets) transform() {
 for i, planet := range planets {
  planets[i] = "New " + planet
 }
}

func terraform(planets []string) {
 for i, planet := range planets {
  planets[i] = "New " + planet
 }
}
func main() {
 fmt.Println("関数版")
 planets := []string{
  "Mercury", "venus", "earth", "mars", "Jupiter", "Saturn", "Uranus",
  "Neptune",
 }
 fmt.Println(strings.Join(planets, "\n"))
 terraform(planets)
 fmt.Println(strings.Join(planets, "\n"))

 fmt.Println("Planets型、メソッド版")
 planets1 := []string{
  "Mercury", "venus", "earth", "mars", "Jupiter", "Saturn", "Uranus",
  "Neptune",
 }
 fmt.Println(strings.Join(planets1, "\n"))
 Planets(planets1).transform()
 fmt.Println(strings.Join(planets1, "\n"))
}

入出力結果(Zsh、PowerShell、Terminal)

% go run ./terraform.go
関数版
Mercury
venus
earth
mars
Jupiter
Saturn
Uranus
Neptune
New Mercury
New venus
New earth
New mars
New Jupiter
New Saturn
New Uranus
New Neptune
Planets型、メソッド版
Mercury
venus
earth
mars
Jupiter
Saturn
Uranus
Neptune
New Mercury
New venus
New earth
New mars
New Jupiter
New Saturn
New Uranus
New Neptune
%

0 コメント:

コメントを投稿