码迷,mamicode.com
首页 > 编程语言 > 详细

go语言指南之映射练习

时间:2019-03-27 10:42:07      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:单词   ring   查看   print   ret   ack   package   targe   语言   

练习:映射

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

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

首先,我查看了一下strings.Fields的解释。给出的函数形式如下

func Fields(s string) []string

官方还给出了例子

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Printf("Fields are: %q", strings.Fields("  foo bar  baz   "))
}

 从这个例子很容易看出,strings.Fields是将一个字符串以每个空格分隔开,形成一个string类型的切片。

所以

package main

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

func WordCount(s string) map[string]int {
	x:=make(map[string]int)
	var elem int =0 
	for i:= range strings.Fields(s){
		elem = x[strings.Fields(s)[i]]
		x[strings.Fields(s)[i]]=1+elem		
	}
	return x
}

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

  因为默认的键值是0,所以可以省略对其初始化。令elem等于之前key的键值,当再次出现此key时,键值+1即可。

go语言指南之映射练习

标签:单词   ring   查看   print   ret   ack   package   targe   语言   

原文地址:https://www.cnblogs.com/xiaolanshu/p/10605493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!