Sorting Smalltalk系列
如果我有一个员工数组,如何根据员工姓氏进行排序?应该是:Sorting Smalltalk系列,sorting,collections,smalltalk,Sorting,Collections,Smalltalk,如果我有一个员工数组,如何根据员工姓氏进行排序?应该是: employees sortBy: [:a :b | a lastName > b lastName] 如果我们做出以下假设: 数组实例保存在名为employees的变量中 数组包含一组实例,所有实例都通过返回字符串实例来响应消息lastName 您希望按升序对集合进行排序 然后,您可以使用以下代码片段完成工作: employees asSortedCollection: [ :a :b | a lastName < b
employees sortBy: [:a :b | a lastName > b lastName]
如果我们做出以下假设:
employees asSortedCollection: [ :a :b | a lastName < b lastName ]
员工分类集合:[:a:b | a lastName
这段代码向名为employees的数组实例发送schooldedcollection:keyword消息。它传入由方括号分隔的块实例,作为该关键字消息的参数。传入的块有两个参数,分别命名为a和b,并在|字符之前用前面的冒号字符标记。在|字符之后的块中的代码将用于对employees数组中的所有元素进行排序,并将它们添加到SortedCollection类的新实例中
但是,请注意,此代码最终返回一个新集合,该集合包含同样由员工持有的项目,但现在按所需顺序排列。事实上,该新集合保留排序条件(用作SordedCollection:message参数的块实例),并且在将来向该集合添加更多实例时,它们将自动以正确的排序顺序插入