go - 将切片中的单个字符串替换为一组字符串
问题描述
我想要一段字符串,当找到某些字符串时,将它们替换为一组相关的字符串。
例如,如果我有这个:
[]string{"A","FROM_B_TO_E","F"}
在我的方法运行后,我想要:
[]string{"A","B","C","D","E","F"}
我想出了这段代码,问题是,虽然我可以在实际添加之前打印我的to_be_added切片,但由于某种原因它不起作用。但是,如果我更改我的translateRule它确实有效,因此它不会返回一个字符串片段,而是只返回一个字符串:
func groupRules(validationRules []string){
for index,rulename := range validationRules {
if succeeded, to_be_added := translateRule(rulename) ; succeeded == true{
fmt.Println("Entro! ", to_be_added)
validationRules = append(append(validationRules[:index],to_be_added...), validationRules[index+1:]...)
}
}
}
func translateRule(rule string) ( bool , []string ) {
if rule == "rs_full" {
return true,[]string{"sapo","rana"}
}
return false,nil
}
解决方案
所以,我缺乏 Go 经验或者我写的代码不好导致我这样做:
func groupRules(validationRules []string) []string{
var tmp_slice []string
for _ ,rulename := range validationRules {
if succeeded, to_be_added := translateRule(rulename) ; succeeded == true{
tmp_slice = append(tmp_slice,to_be_added...)
}else{
tmp_slice = append(tmp_slice,rulename)
}
}
return tmp_slice
}
func translateRule(rule string) ( bool , []string ) {
if rule == "rs_full" {
return true,[]string{"sapo","rana","tigre"}
}
return false,nil
}
现在它完美无缺。
谢谢你们。
推荐阅读
- c# - 如何将 devart.Pgsqlarray 转换为 c# 列表
- angular - 角材质对话框按钮
- pyspark - 使用 pyspark 结构化流计算移动平均列
- java - 将复合主键与 SqlResultSetMapping 一起使用时,Hibernate 抛出“SQLException Invalid column name”
- python - sqlalchemy + Pymysql - 生成的查询将标识符连接到列
- python - 根据相同字符的不同位置将正则表达式应用于熊猫列
- typescript - TypeScript 3.7 递归类型引用 - 记录与索引签名
- typescript - next-auth TypeORM 中的自定义模型不起作用
- svelte - SvelteKit 预渲染似乎不起作用
- reactjs - 在赛普拉斯测试运行时禁用 Auth0