练习:映射
练习:映射
实现 WordCount 。它应当返回一个映射,其中包含字符串 s 中每个“单词”的个数。函数 wc.Test 会对此函数执行一系列测试用例,并输出成功还是失败。
你会发现 strings.Fields 很有帮助。 package main import ( "golang.org/x/tour/wc" "strings" ) func WordCount(s string) map[string]int { m:=make(map[string]int) c:=strings.Fields(s) for _,v:= range c{ m[v]+=1 } return m } func main() { wc.Test(WordCount) } //返回 PASS f("I am learning Go!") = map[string]int{"Go!":1, "I":1, "am":1, "learning":1} PASS f("The quick brown fox jumped over the lazy dog.") = map[string]int{"The":1, "brown":1, "dog.":1, "fox":1, "jumped":1, "lazy":1, "over":1, "quick":1, "the":1} PASS f("I ate a donut. Then I ate another donut.") = map[string]int{"I":2, "Then":1, "a":1, "another":1, "ate":2, "donut.":2} PASS f("A man a plan a canal panama.") = map[string]int{"A":1, "a":2, "canal":1, "man":1, "panama.":1, "plan":1}
x
1 package
main 2 3 import ( 4
"golang.org/x/tour/wc" 5
"strings" 6 ) 7 8 func
WordCount ( s
string ) map [ string ] int { 9
m :
make ( map [ string ] int ) 10
c :
strings . Fields ( s ) 11
for
_ , v :
range
c { 12
m [ v ] += 1 13
} 14
return
m 15 } 16 17 func
main () { 18
wc . Test ( WordCount ) 19 } 20 //返回 21 PASS 22
f ( "I am learning Go!" )
23
map [ string ] int { "Go!" : 1 , "I" : 1 , "am" : 1 , "learning" : 1 } 24 PASS 25
f ( "The quick brown fox jumped over the lazy dog." )
26
map [ string ] int { "The" : 1 , "brown" : 1 , "dog." : 1 , "fox" : 1 , "jumped" : 1 , "lazy" : 1 , "over" : 1 , "quick" : 1 , "the" : 1 } 27 PASS 28
f ( "I ate a donut. Then I ate another donut." )
29
map [ string ] int { "I" : 2 , "Then" : 1 , "a" : 1 , "another" : 1 , "ate" : 2 , "donut." : 2 } 30 PASS 31
f ( "A man a plan a canal panama." )
32
map [ string ] int { "A" : 1 , "a" : 2 , "canal" : 1 , "man" : 1 , "panama." : 1 , "plan" : 1 } 33