通用数组的Swift 4.1类型推断与Swift 4.0不同

时间:2018-07-13 22:08:39

标签: swift type-inference

请考虑以下代码段:

array

请注意,传递给struct Foo<E> { var elements: [E] init(_ elements: [E]) { self.elements = elements } } var f = Foo([1.3, 4.5, 6]) print(f) 初始化程序的数组包括整数6。

在Swift 4.0下运行时,它输出Foo。但是在Swift 4.1.2中,它输出Foo<Double>。为什么类型推断有所不同?我可以想到一些潜在的原因,但是我找不到有关更改的文档。有人可以指向文档吗?

值得注意的是

Foo<Any>

在4.0和4.1上都产生var a = [1.2, 3.4, 5] print(type(of: a)) ,表现与我期望的一样。

0 个答案:

没有答案