Go语言 根据条件传递参数

vhmi4jdf  于 2023-09-28  发布在  Go
关注(0)|答案(1)|浏览(97)

我有一个接受varargs的函数。

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

我的用例是基于某些条件传递其中一个条目。
有没有可能像下面这样有类似效果的东西(这样我就不需要在两个里面都有一个if-else调用MyFunc):

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

6vl6ewon1#

只需将参数准备为切片:

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

然后使用你的slice调用variadic函数:

MyFunc(myArgs...)

相关问题