当两个版本具有相同的行为时,为啥这个 Swift 游乐场会显示不同数量的执行? [复制]
Posted
技术标签:
【中文标题】当两个版本具有相同的行为时,为啥这个 Swift 游乐场会显示不同数量的执行? [复制]【英文标题】:Why does this Swift playground show a different number of executions when both versions have the same behavior? [duplicate]当两个版本具有相同的行为时,为什么这个 Swift 游乐场会显示不同数量的执行? [复制] 【发布时间】:2017-03-02 02:52:17 【问题描述】:我用map函数遍历同一个数组,不一样,为什么遍历的次数不一样?
代码如下:
let list = ["1", "2", "3"]
let arr = list.map $0 + $0
let mArr = list.map str in
return str + str
print(arr)
print(mArr)
【问题讨论】:
您的代码图像对我们毫无用处。请参阅this Meta post,了解您不应将代码作为图像发布的众多原因列表。您的代码需要在问题本身中以文本形式出现并正确格式化。 没那么简单。 Xcode 没有提供很好的方法来将 Playground 的代码和结果列一起捕获为文本。新用户应该被善待,而不是轻蔑。不知何故,我能够根据“无用”的图像回答这个用户的问题。 【参考方案1】:对map
的调用计为一次执行,闭包内语句的每次执行都计为一次执行。
在第一种情况下,map
的调用与闭包中的语句在同一行,因此 Xcode 显示了该行中任何内容的总执行次数,即 4 次:1 次 @ 执行987654323@ 加上闭包内语句的 3 次执行。
在第二种情况下,对map
的调用与闭包中的语句位于不同的行上。由于对map
的调用只执行一次,并且在该行上没有执行任何其他操作,Xcode 显示了map
返回的内容:列表["11", "22", "33"]
。闭包内的语句执行了 3 次,所以 Xcode 显示了它执行的次数。
【讨论】:
以上是关于当两个版本具有相同的行为时,为啥这个 Swift 游乐场会显示不同数量的执行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当具有相同术语的 HQL 选择有效时,为啥此 HQL 删除失败?