<div dir="ltr">In swift, a variadic argument can become an array without too much effort.<div><br></div><div>func foo(_ va: String...) {</div><div>   let a: [String] = va</div><div>}</div><div><br></div><div>However, it seems odd to me that an array can not be converted into a variadic argument</div><div><br></div><div>foo([&quot;a&quot;, &quot;b&quot;, &quot;c&quot;]) // &lt;-error</div><div>foo(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;) // no error<br></div><div><br></div><div><a href="http://stackoverflow.com/questions/24024376/passing-an-array-to-a-function-with-variable-number-of-args-in-swift">Other people have wondered about this too.</a><br></div><div><br></div><div>According to <a href="https://devforums.apple.com/message/970958#970958">this thread</a> Doug Gregor says it is due to some type ambiguity. with Generics.</div><div><br></div><div>If type ambiguity is the issue, Do we have the option to cast it to the correct type?</div><div><br></div><div>foo([&quot;a&quot;, &quot;b&quot;, &quot;c&quot;] as String...) // &lt;- error.  doesn&#39;t consider String... to be a type.<br></div><div><br></div><div>What does the community think? Should we be granted some mechanism to turn an array into a variadic argument?</div></div>