Если мы сделаем эти предположения:
- Экземпляр Array содержится в переменной с именем employee
- Массив содержит коллекцию экземпляров, которые все отвечают на сообщение lastName , возвращая экземпляр String
- Вы хотите отсортировать коллекцию в порядке возрастания
Тогда вы можете выполнить работу с помощью следующего фрагмента кода:
employees asSortedCollection: [ :a :b | a lastName < b lastName ]
Этот код отправляет сообщение с ключевым словом asSortedCollection: в экземпляр массива с именем employee . Он передается в экземпляре Block, ограниченном квадратными скобками, в качестве параметра этого ключевого сообщения. Переданный блок имеет два аргумента с именами a и b и помечены предшествующим двоеточием перед символом | персонаж. Код в блоке после | Затем этот символ будет использоваться для сортировки всех элементов из массива employee и добавления их в новый экземпляр класса SortedCollection.
Обратите внимание, что этот код в конечном итоге возвращает новую коллекцию, содержащую те же элементы, которые также хранятся у сотрудников , но теперь в нужном порядке. Фактически, эта новая коллекция соответствует критериям сортировки (экземпляр Block, который использовался в качестве параметра для сообщения asSortedCollection: ), и по мере добавления новых экземпляров в эту коллекцию в будущем они будут автоматически вставлены. в правильном порядке сортировки.