maps.go 745 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. func main() {
  7. // 1) 统计每个单词出现次数
  8. counts := make(map[string]int)
  9. // 2) 直接内置 3 行文本,不再从标准输入读
  10. lines := []string{
  11. "go is fun",
  12. "go go go",
  13. "python is fun too",
  14. }
  15. // 3) 逐行逐词统计
  16. for _, line := range lines {
  17. for _, word := range strings.Fields(line) {
  18. counts[word]++
  19. }
  20. }
  21. // 4) 打印单词 → 次数
  22. for w, c := range counts {
  23. fmt.Printf("%q 出现了 %d 次\n", w, c)
  24. }
  25. // 5) 再建一个 map:单词 → 出现过的行号
  26. index := make(map[string][]int)
  27. for lineno, line := range lines {
  28. for _, word := range strings.Fields(line) {
  29. index[word] = append(index[word], lineno+1)
  30. }
  31. }
  32. fmt.Println(index)
  33. }