Skip to content

Latest commit

 

History

History
17 lines (12 loc) · 678 Bytes

如果T1和T2的类型相同,能够把[]T1转化为[]T2吗.md

File metadata and controls

17 lines (12 loc) · 678 Bytes

如果T1和T2的类型相同,能够把[]T1转化为[]T2吗?

下面例子中最后一行,是无法通过编译的。

type T1 int
type T2 int
var t1 T1
var x = T2(t1) // OK
var st1 []T1
var sx = ([]T2)(st1) // NOT OK

在Go语言中,类型和一些方法紧密的绑定在一起,也就是所有类型都有一些绑定的方法。一个通用规则是这样:你可以改变一个类型(可能会一起改变它绑定的方法集),但是你不能改变一个复合类型(含有一系列的元素)(PS:因此map也是不能直接转化的)。

Go要求你明确的进行类型转换(PS:就是集合的话,你要一个一个来转化)