zoukankan      html  css  js  c++  java
  • golang 循环创建闭包 问题排查

        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], func(chat *model.Chat, values map[string][]string, neure string) []string {
                return coupus[1][1]
            }))

    方式二:结果不对,调用f()的时候每次都返回coupus最后一项的[1]值

        for _, v := range coupus {
            f := func(chat *model.Chat, values map[string][]string, 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, values map[string][]string, neure string) []string {
                return rsp
            }
            a := CreateCranialNerve(v[0], f)
            list = append(list,a)
        }
  • 相关阅读:
    python map 详解
    python 中的集合(set) 详解
    python中的列表(list) 切片详解
    django 创建数据库表 命令
    django如何检查创建的模型(model)是否有语法错误或者逻辑错误
    python 列表(list)去除重复的元素总结
    python中的 zip函数详解
    django post和get 比较
    正则表达式的特殊符号和字符详细解析
    .NET/MVC-发布到IIS6.1提示未能加载程序集System.Web.Http.WebHost
  • 原文地址:https://www.cnblogs.com/8000cabbage/p/11176502.html
Copyright © 2011-2022 走看看