Он основан не только на длине строки.
Если вы введете команду + щелкните по слову min
, а затем нажмите «Перейти к определению», вы увидите, что оно объявлено с расширением * 1004.*:
extension Array where Element : Comparable {
...
Это говорит о том, что при сравнении элементов, вероятно, используются <
и >
, поскольку эти операторы требуются для Comparable
.
Следовательно,метод min
вернет «наименьшую» строку на основе сравнения с оператором <
.
Как тогда оператор <
работает со строками?
Все они оцениваются какtrue:
"s" < "ss"
"a" < "b"
"ab" < "b"
Что предполагает, что сначала сравниваются буквы по алфавиту, а затем по длине.Другими словами, он работает как словарь (как в реальном словаре со словами и их значениями, а не структурой данных).Метод min
вернет слово, которое появится первым в словаре.