title: How do I append values to a ...interface{}?
body: <p>Here's a sample function I want to emulate:</p>
  
  <pre><code>package main
  
  import "fmt"
  
  func main() {
      fmt.Println(fmt.Sprintf("Initially I want %d %s", 2, "dogs"))
      fmt.Println(Sprintf2("Now I want %d %s", 2, "dogs"))
  }
  
  func Sprintf2(format string, a ...interface{}) string {
  
  return fmt.Sprintf(format + " and %d cats", append(a, 5))
  }
  </code></pre>
  
  <p>here's a link in playground: <a href="https://play.golang.org/p/dHDwTlbRLDu" rel="nofollow noreferrer">https://play.golang.org/p/dHDwTlbRLDu</a></p>
  
  <p>expected output:</p>
  
  <blockquote>
    <p>Initially I want 2 dogs<br/>
    Now I want 2 dogs and 5 cats</p>
  </blockquote>
  
  <p>actual output:</p>
  
  <blockquote>
    <p>Initially I want 2 dogs <br/>
    Now I want [2 %!d(string=dogs) 5] %!s(MISSING) and %!d(MISSING) cats</p>
  </blockquote>