三行代码  ›  专栏  ›  技术社区  ›  Mandroid

基于条件传递参数

go
  •  0
  • Mandroid  · 技术社区  · 3 月前

    我有一个接受varargs的函数。

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

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

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

    MyFunc(entry1, if(condition)entry2, entry3)
    
    1 回复  |  直到 3 月前
        1
  •  3
  •   blami    3 月前

    只需将参数准备为切片:

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

    然后使用切片调用varadic函数:

    MyFunc(myArgs...)