首页 > 文章列表 > 参数传递的条件

参数传递的条件

393 2024-02-05
问题内容

我有一个接受可变参数的函数。

func MyFunc(strs ...string)
MyFunc(entry1, entry2, entry3)

我的用例是根据某些条件传递其中一个条目。

是否可能有类似的效果,如下所示(这样我就不需要在两者中调用 MyFunc 的 if-else):

MyFunc(entry1, if(condition)entry2, entry3)


正确答案


只需将参数准备为切片:

myArgs := []string{"entry1"}
if (condition) {
    myArgs = append(myArgs, "entry2")
}
myArgs = append(myArgs, "entry3")

然后使用您的切片调用可变参数函数:

MyFunc(myArgs...)