golang 循环创建闭包 问题排查

golang 循环创建闭包 问题排查,第1张

概述      var coupus = [][2][]string{ { { "邀请码是什么", "我没有邀请码", "这个邀请码我可以随便填吗", "邀请码可以填他的手机号吗",

 

 

 

    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 循环创建闭包 问题排查所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存