今日もGoについてつらつらと
昨日に引き続き A Tour of Goを実施していく中での気づくを書いていく。
for文
package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) }
javaやCとほぼほぼ同じ文法。 ()をつけないところが相違点。
条件式の省略もできるみたい。 セミコロン抜かすとC言語のときのwhile文みたいでしょって公式も書いてある。(確かに)
if文
CやJavaとほぼ一緒。 やっぱり()はつけない。
if x < 0 { return sqrt(-x) + "i" }
もちろんelseの条件変わらいのでCから入門するには最適だなと改めて思う。
ちょっとおもしろかった
出力がよくわからないなと思った箇所が冷静に追っていけばあーってなる箇所があるサンプルを見つけた。
package main import ( "fmt" "math" ) func pow(x, n, lim float64) float64 { if v := math.Pow(x, n); v < lim { return v } else { fmt.Printf("%g >= %g\n", v, lim) } return lim } func main() { fmt.Println( pow(3, 2, 10), pow(3, 3, 20), ) }
出力は、
27 >= 20 9 20
となり?と思ったがmain関数のPrinln関数よりpow関数のPrintf関数のほうが出力される順番が早いというだけのことだった。
ニュートン法の問題は後回し。難しい。
今日は時間がないのでここまで。 明日はswitch文から始める。