请考虑以下代码段:
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))
,表现与我期望的一样。