我有创建像这样的切片的功能:
state: {
selections {
products: ["a", "b"]
}
}
仅当满足特定条件时,才需要将Option3添加到切片中。如果在同一条语句中,可以立即执行吗?
我必须要做这样的事情:
func buildOptions(cfg *ServerConfig) []SomeType {
return []SomeType{
Option1,
Option2,
Option3,
}
}
答案 0 :(得分:4)
不,您不能在composite literal中有条件地包含列出的元素。
使用附加的if
和append()
可能会更加冗长,但是会发生什么事情(您的代码会做什么)更加明显。
您可以使用传递条件和所有元素的辅助函数来实现类似的功能,但这只会使代码更加混乱,从而降低性能。