连续循环函数的Swift编译器优化

时间:2016-05-26 20:05:28

标签: ios swift macos llvm

LLVM编译器是否对连续的Swift循环函数进行了任何优化?

e.g:

var things: [String] = ["First", "Second", "Third"]
var changedThings = things.map({$0.characters}).map({$0.count})

var things: [String] = ["First", "Second", "Third"]
var changedThings = things.map({$0.characters.count})

在游乐场,它似乎分别运行预期的6和3次,但我不确定游乐场的行为与完整的iOS或OSX应用程序相比是多么可靠。

原因在于有许多案例,比如处理选项,以便做一些更清洁的事情:

collection.flatMap($0.optional).map(otherThing.init)

与在flatMap函数中编写整个函数相比:

collection.flatMap { return $0.optional != nil ? otherThing(name: $0.optional!) : nil }

当然有很多关于如何包含/引用函数来使特定行更清晰的选项,但无论如何我都很好奇。

0 个答案:

没有答案