如何将值附加到... interface {}?

时间:2018-05-07 14:47:41

标签: go interface

这是我想要模拟的示例函数:

removeCounterHandler(filteredID) {
    const { countersArr } = this.state
    const filtered = countersArr.filter(id=>id!==filteredID)
    this.setState({ countersArr: filtered});
  }

这是操场上的链接:https://play.golang.org/p/dHDwTlbRLDu

预期产出:

  

最初我想要2只狗   现在我想要2只狗和5只猫

实际输出:

  

最初我想要2只狗   现在我想要[2%!d(string = dogs)5]%!s(MISSING)和%!d(MISSING)猫

1 个答案:

答案 0 :(得分:1)

您需要先将新值附加到a切片,然后在调用fmt.Sprintf时解压缩切片:

func Sprintf2(format string, a ...interface{}) string {
    a = append(a, 5)
    return fmt.Sprintf(format+" and %d cats", a...)
}

https://play.golang.org/p/YRWzAT2Yxm_q