[英]Smalltalk collections
如果我有一系列員工,我如何根據員工的姓氏進行分類?
應該是這樣的:
employees sortBy: [:a :b | a lastName > b lastName]
如果我們做出這些假設:
然后,您可以使用以下代碼片段完成工作:
employees asSortedCollection: [ :a :b | a lastName < b lastName ]
此代碼將asSortedCollection:關鍵字消息發送到名為employees的Array實例。 它將Block實例(由方括號分隔)作為該關鍵字消息的參數傳遞。 傳入的Block有兩個名為a和b的參數,並且在|之前都有前面的冒號字符標記 字符。 |之后的塊內的代碼 然后,將使用character對employees數組中的所有元素進行排序,並將它們添加到SortedCollection類的新實例中。
但請注意,此代碼最終返回一個新集合,該集合包含員工也持有的相同項目,但現在按所需順序。 實際上,新集合保留了排序條件(用作asSortedCollection:消息的參數的Block實例),並且當您將來向該集合添加更多實例時,它們將自動以正確的排序順序插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.