应该是这样的:
employees sortBy: [:a :b | a lastName > b lastName]
Run Code Online (Sandbox Code Playgroud)
小智 6
如果我们做出这些假设:
然后,您可以使用以下代码片段完成工作:
employees asSortedCollection: [ :a :b | a lastName < b lastName ]
Run Code Online (Sandbox Code Playgroud)
此代码将asSortedCollection:关键字消息发送到名为employees的Array实例.它将Block实例(由方括号分隔)作为该关键字消息的参数传递.传入的Block有两个名为a和b的参数,并且在|之前都有前面的冒号字符标记 字符.|之后的块内的代码 然后,将使用character对employees数组中的所有元素进行排序,并将它们添加到SortedCollection类的新实例中.
但请注意,此代码最终返回一个新集合,该集合包含员工也持有的相同项目,但现在按所需顺序.实际上,新集合保留了排序条件(用作asSortedCollection:消息的参数的Block实例),并且当您将来向该集合添加更多实例时,它们将自动以正确的排序顺序插入.