为了账号安全,请及时绑定邮箱和手机立即绑定

我可以根据条件将项目添加到创建语句中的切片中吗?

我可以根据条件将项目添加到创建语句中的切片中吗?

Go
千巷猫影 2023-06-26 16:54:15
我有一个创建切片的函数,如下所示:func buildOptions(cfg *ServerConfig) []SomeType {    return []SomeType{        Option1,        Option2,        Option3,    }}仅当满足特定条件时,我才需要将 Option3 添加到切片中。可以在同一个语句中使用某种立即 if 来完成吗?我必须做这样的事情吗:func buildOptions(cfg *ServerConfig) []SomeType {    options:= []SomeType{        Option1,        Option2,    }    if addOption3==true{       options = append(options, Option3)    }    return options}
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

不,您不能有条件地将列出的元素包含在复合文字中。

if使用附加的and可能会更冗长append(),但发生的事情(你的代码做了什么)更加明显。

您可以使用传递条件和所有元素的辅助函数来实现类似的效果,但这只会使代码更加混乱,并且性能会更差。


查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信