var coupus = [][2][]string{ { { "邀请码是什么","我没有邀请码","这个邀请码我可以随便填吗","邀请码可以填他的手机号吗","没有邀请码注册不了吗",},{ "你好,邀请码是您推荐人的会员编号,如果您没有推荐人的话,可以选择系统推荐,随意选择一个编号完成注册。",{ { "我要注册账号,从哪里注册","从哪注册呀","我没有账号得怎么弄","我登录不上去呀",{ "没有账号的会员 *** 作时系统会自行跳到登录的页面,登陆页面有用户注册的字样,您可以点击这里进行注册。","进入注册页面之后填写您的基本信息,填写推荐人然后完成注册。注册完成之后,需要记住您的会员编号 ,每个会员只有一个,当您推广会员时下级会员需要填写的推荐码就是您的会员编号。",}
}
要将语料加工处理
方式一:
List = append(List,CreateCranialNerve(coupus[0][0],func(chat *model.Chat,values map[string][]string,neure string) []string { return coupus[0][1] })) List = append(List,CreateCranialNerve(coupus[1][0],neure string) []string { return coupus[1][1] }))
方式二:结果不对,调用f()的时候每次都返回coupus最后一项的[1]值
for _,v := range coupus { f := func(chat *model.Chat,neure string) []string { return v[1] } a := CreateCranialNerve(v[0],f) List = append(List,a) }
方式二修正:把v[1]给新的变量测试可以,想法:闭包返回的是对变量v的引用,循环每次都更新的是同一个v
for _,v := range coupus { rsp := v[1] f := func(chat *model.Chat,neure string) []string { return rsp } a := CreateCranialNerve(v[0],a) }总结
以上是内存溢出为你收集整理的golang 循环创建闭包 问题排查全部内容,希望文章能够帮你解决golang 循环创建闭包 问题排查所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)