我有一个创建切片的函数,如下所示: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()
,但发生的事情(你的代码做了什么)更加明显。
您可以使用传递条件和所有元素的辅助函数来实现类似的效果,但这只会使代码更加混乱,并且性能会更差。
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消