Go tour练习:映射

本篇是 Go 语言之旅 (go-zh.org) 中的“循环与函数”练习的学习记录。

++++++++++++++++++++++++++++++++++++++++++++++++++++

实现 WordCount。它应当返回一个映射,其中包含字符串 s 中每个“单词”的个数。函数 wc.Test 会对此函数执行一系列测试用例,并输出成功还是失败。

你会发现 strings.Fields 很有帮助。

++++++++++++++++++++++++++++++++++++++++++++++++++++

提示使用strings.Fields,这个函数接收一个字符串,根据其中的空字符拆分成一个字符串数组并返回:

Fields splits the string s around each instance of one or more consecutive white space characters, as defined by unicode.IsSpace, returning an array of substrings of s or an empty list if s contains only white space.

—— http://go-zh.org/pkg/strings/#Fields
package main

import (
	"golang.org/x/tour/wc"
	"strings"
)

func WordCount(s string) map[string]int {
	fields := strings.Fields(s)
	dict := make(map[string]int)
	for _, v:=range fields{
		if _, existed := dict[v];existed{
			dict[v]++
		}else{
			dict[v]=1
		}
	}
	return dict
}

func main() {
	wc.Test(WordCount)
}

0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x