Метод Smalltalk Min: поиск минимального значения в коллекции

В Smalltalk метод min обычно используется для поиска минимального значения в коллекции. Smalltalk предоставляет несколько методов, которые можно использовать для поиска минимального значения. Вот несколько примеров:

  1. мин:

    Этот метод возвращает наименьший элемент в коллекции на основе естественного порядка элементов. Например:

    | numbers minNumber |
    numbers := #(5 2 8 1 9).
    minNumber := numbers min.
    Transcript show: minNumber.

    Выход:

    1
  2. мин: и #<:

    Вы также можете использовать метод #min: с аргументом блока, чтобы определить собственное сравнение. Например, чтобы найти самую короткую строку в коллекции:

    | strings shortestString |
    strings := #('apple' 'banana' 'orange' 'kiwi').
    shortestString := strings min: [:a :b | a size < b size].
    Transcript show: shortestString.

    Выход:

    kiwi
  3. мин: автор:

    Этот метод позволяет указать ключевой блок, который извлекает значение из каждого элемента, а затем находит минимум на основе этого значения. Например, чтобы найти человека с самым низким возрастом в коллекции объектов:

    | people youngestPerson |
    people := {Person new age: 32. Person new age: 26. Person new age: 40}.
    youngestPerson := people min: #age by: [:p | p age].
    Transcript show: youngestPerson age.

    Выход:

    26

Это всего лишь несколько примеров метода «min» в Smalltalk. Могут быть и другие варианты в зависимости от конкретной реализации Smalltalk, которую вы используете.