只有在下述情况中,一个 value x 才能被赋值到一个 type 为 T 的 variable 中:
- x 的 type 和 T 是 identical。
- 假设 x 的 type 是 V 。 V 和 T 具有相同的 underlying type , V 和 T 至少有一个不是 named type。
- T 是一个 interface type , x implements T。
- x 是一个 双向 channel 的 value , T 是一个 channel type , x 的 type V 和 T 拥有同样的元素 type , 同时, V 和 T 至少有一个不是 named type。
- x 是预声明的标识符 nil , T 是 pointer , function , slice , map , channel 或者 interface type。
- x 是 untyped constant , 并且可以表示 T 类型的 value 。