title: What is the Scala syntax for calling a function with variadic arguments but with named arguments?
body: <p>Say I have a function</p>
  
  <pre><code>def f(a:Int = 0, b:String = "", c:Float=0.0, foos: Foo*) { ... }
  </code></pre>
  
  <p>Notice the use of default arguments for some parameters. Typically, to make use of default values, you invoke a function with named parameters like so:</p>
  
  <pre><code>val foo = Foo("Foo!")
  f(foos = foo)
  </code></pre>
  
  <p>This syntax works because <strong>I'm only invoking the method with one <code>foo</code></strong>. However, if I have two or more</p>
  
  <pre><code>val foo1 = Foo("Foo!")
  val foo2 = Foo("Bar!")
  f(foos = ...)
  </code></pre>
  
  <p>it's not so obvious what should be fed in here. <code>Seq(foo1,foo2)</code> and <code>Seq(foo1,foo2):_*</code> do not type check.</p>
  
  <p>What's more, how can I call it with <strong>no</strong> <code>foo</code>s?</p>
  
  <pre><code>// All out of foos!
  f(foos = ...)
  </code></pre>
  
  <p>For this case, calling the function with empty parentheses (<code>f()</code>) does not work.</p>
  
  <p>Thanks!</p>