为什么不起作用?
package main
type Word uint8
type Memory []Word
func main() {
bytes := []uint8{}
memory := Memory{}
bytes = memory
}
编译器会产生此错误:
9:9: cannot use memory (type Memory) as type []byte in assignment
据我了解,[]uint8
和Memory
应该可以相互分配。
答案 0 :(得分:0)
在这种情况下,不保留任何类型,因此类型不可分配。
鉴于您提到的答案还不够详细,请仔细阅读每条可分配性规则:(为简便起见,我们使用A
替代[]uint8
,而B
替代{ {1}})
[]Word
与A
不同B
的价值因此,如您所见-无法将nil
分配给A
。
如果您将Memory声明为B
可以正常工作(如注释中提到的@RayfenWindspear),我可以确定问题的根源更多是“为什么”而不是“如何解决”。 / p>