Parameter that's a list of interface{} : <p>I'm trying to create a function that prints out the <code>len</code> of a list passed into it, regardless of the type of the list.  My naive way of doing this was: </p>

<pre><code>func printLength(lis []interface{}) {
    fmt.Printf("Length: %d", len(lis))
}
</code></pre>

<p>However, when trying to use it via</p>

<pre><code>func main() {
    strs := []string{"Hello,", "World!"}
    printLength(strs)
}
</code></pre>

<p>It complains saying</p>

<pre><code>cannot use strs (type []string) as type []interface {} in argument to printLength
</code></pre>

<p>But, a <code>string</code> can be used as a <code>interface{}</code>, so why can't a <code>[]string</code> be used as a <code>[]interface{}</code>?</p>
