写在前面
后端, 得开始看看 Go 语言了, 感觉还挺好玩的, 试试.
虽然距离秋招的时间不多了…
教程就是官网的 Tour of Go, 我看的中文版, 还可以, 很详细.
数组
切片
练习题:
package main
import (
"math"
"golang.org/x/tour/pic"
)
func f(x int, y int) int {
_ = math.Log // placeholder
// return (x + y) / 2
// return x * y
// return x ^ y
// return x * int(math.Log(float64(y))) // cast
return x % (y + 1)
}
func Pic(dx, dy int) [][]uint8 {
ans := make([][]uint8, dy)
for i := 0; i < dy; i++ {
tmp := make([]uint8, dx)
for j := 0; j < dx; j++ {
tmp[j] = uint8(f(i, j)) // cast
}
ans[i] = tmp
}
return ans
}
func main() {
pic.Show(Pic)
}
映射
练习
package main
import (
"strings"
"golang.org/x/tour/wc"
)
func WordCount(s string) map[string]int {
tmp := strings.Fields(s)
ans := make(map[string]int)
for _, itm := range tmp {
ans[itm] += 1
}
return ans
}
func main() {
wc.Test(WordCount)
}
函数
package main
import "fmt"
// 返回一个“返回int的函数”
func fibonacci() func() int {
a, b := 0, 1
return func() int {
tmp := a
a, b = b, a+b
return tmp
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}