大佬教程收集整理的这篇文章主要介绍了swift – 为什么有些表达式记录结果而其他表达式只显示迭代计数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
let array = [7,3,4,9,2,12,5] let firstSorted = array.sorted(<) let secondSorted = sorted(array,<) let thirdSorted = array.sorted { $0 < $1 }
右侧显示的输出显示firstSorted和secondSorted旁边的排序数组输出.然而,ThirdSorted旁边的输出只是说(15次).
为什么?如何在不添加单独的println命令来记录输出的情况下查看输出?
第三种形式有@L_874_1@尾随闭包,其参数由它们的位置指定.
另外两个是@L_874_1@更短的形式,只采用比较运算符,恰好匹配所需的闭包的签名.
另@L_874_1@问题:(这次关于语言,而不是游乐场)为什么sorted(array,<)和array.sorted(<)形式都有效?第@L_874_1@是带有2个参数的全局函数,第二个是Array类的方法.
如果你把它分成多行,你可以看到排序的结果,以及$0< 0的13次评估的结果. $1: 我想IDE可以采用最外层结果最有趣的方法,并显示,但这可能隐藏了多次调用闭包的信息. 至于第二个问题:排序的全局2参数版本更为通用.它排序任何类型的序列:
// they should probably rename this placeholder to s... func sorted<C : SequenCEType> (source: C,isorderedBefore: (C.Generator.Element,C.Generator.Element) -> Bool) -> [C.Generator.Element]
// results in [4,1,0] sorted(0..<5,>) // results in [(3,"bob"),(2,"fred")] because Dictionary’s // SequenCEType representation is unordered pairs sorted([2:"fred",3:"bob"]) { $0.1 < $1.1 }
此外,由于全局函数可以基于约束输入进行重载,因此如果输入序列的元素是Comparable,则可能存在根本不需要比较器的重载版本:
func sorted<C : SequenCEType where C.Generator.Element : Comparable> (source: C) -> [C.Generator.Element]
以上是大佬教程为你收集整理的swift – 为什么有些表达式记录结果而其他表达式只显示迭代计数?全部内容,希望文章能够帮你解决swift – 为什么有些表达式记录结果而其他表达式只显示迭代计数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。