序
本文是golang官方练习的pass代码,使用了中文版的tour
循环与函数
package main
import (
"fmt"
)
func Sqrt(x float64) float64 {
res := 1.0
for i := 0; i < 10; i++ {
res = res - (res * res - x) / 2 / res
}
return res
}
func main() {
fmt.Println(Sqrt(2))
}
slice
package main
import "golang.org/x/tour/pic"
func Pic(dx, dy int) [][]uint8 {
var pic [][]uint8;
for i := 0; i < dy; i++ {
var one_line []uint8
for j := 0; j < dx; j++ {
one_line = append(one_line, (uint8)(i & j))
}
pic = append(pic, one_line)
}
return pic
}
func main() {
pic.Show(Pic)
}
map
package main
import (
"golang.org/x/tour/wc"
"strings"
)
func WordCount(s string) map[string]int {
count := make(map[string]int)
for _, v := range strings.Fields(s) {
count[v] = count[v] + 1
}
return count
}
func main() {
wc.Test(WordCount)
}
斐波纳契闭包
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
one := 0
two := 1
return func() int {
result := one
one = two
two = result + two
return result
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
stringer
<