6.5 设字典map1的键是string型,值是int型,初始化为[psw1:123 psw2:456 psw3:789],要求删除键值对psw2:456,增加键值对psw4:135,请编写程序实现上述功能。
package main
import (
"fmt"
)
func main() {
var map1 = map[string]int{"psw1": 123, "psw2": 456, "psw3": 789}
delete(map1, "psw2")
map1["psw4"] = 135
fmt.Println(map1)
}
6.6 创建一个float64类型的Slice,初始化并计算该Slice元素平均值。
package main
import (
"fmt"
)
func main() {
var slice = []float64{1.0, 1.5, 2.2, 3.6}
var sum float64
for _, v := range slice {
sum += v
}
avg := sum / float64(len(slice))
fmt.Println(avg)
}
6.7 利用bytes包中的字节切片函数,统计文本文件中含有er单词的个数。
package main
import (
"bytes"
"fmt"
"os"
)
func main() {
var sum int
buf := make([]byte, 1024)
f, _ := os.Open("words.txt")
defer f.Close()
n, _ := f.Read(buf)
for _, sentence := range bytes.FieldsFunc(buf[:n], f1) {
for _, words := range bytes.Fields(sentence) {
if bytes.Contains([]byte(words), []byte("er")) {
fmt.Println(string(words))
sum++
}
}
}
fmt.Println("含有er的单词总数为", sum)
}
func f1(a rune) bool {
return a == ',' || a == '.' || a == '!'
}