Learning Go: Can I convert a []T to an []interface{}?

An FAQ item in FAQ — Go Programming Language is “Can I convert a []T to an []interface{}?”.  The result is NO, and the reason is “they do not have the same representation in memory”.  However, the FAQ item does not show memory representations of these two.  Here follows some details copied from Russ Cox’s posts.

This post shows memory representations of two slices of type []int:

where each slice takes three elements: the starting address of the real data, the length and the capacity. Each integer value in the real data takes a memory slot.

An interface value has more complex representation than an int value does. As shown in this post, an interface value consists of a pointer to the data and another pointer to the itable, where the itable refers to the type descriptor and the method table:

A value of the special interface type, inteface{}, refers to an empty method table. But anyway, as all other interface values, it takes two memory slots (the data pointer and the itable pointer), and is different from an integer value.