A Tour of Go 練習
Exercise: Loops and Functions
ニュートン法で平方根もとめるやつ
code:sqrt.go
package main
import (
"fmt"
"math"
)
const eps = 1e-24
func Sqrt(x float64) (z float64) {
z = x
for math.Pow(x - z * z, 2) > eps {
z -= (z*z -x) / (2*z)
}
return
}
func main() {
fmt.Println(Sqrt(5))
}
Exercise: Slices
x, y でグラフ書くやつ
code:go
package main
import "golang.org/x/tour/pic"
func Pic(dx, dy int) (result [][]uint8) {
for x:=0; x<dx; x++ {
row := make([]uint8, dy)
for y:=0; y<dy; y++ {
}
result = append(result, row)
}
return
}
func main() {
pic.Show(Pic)
}
https://gyazo.com/107a345796aafc2a5092957547ee6ceb
描けた
Exercise: Maps
単語数数えるやつ
code:go
package main
import (
"strings"
"golang.org/x/tour/wc"
)
func WordCount(s string) (counts mapstringint) { for _, w := range strings.Fields(s) {
}
return
}
func main() {
wc.Test(WordCount)
}
Exercise: Fibonacci closure
フィボナッチ書くやつ。0始まりにしようとしたらこんなことに…
code:go
package main
import "fmt"
func fibonacci() func() int {
i, j := 0, 1
return func() (r int) {
r, i, j = i, j, j + i
return
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}