Трудное понимание при сравнении кортежей в Swift - PullRequest
0 голосов
/ 10 декабря 2018
   Program 1:
   (1, "zebra") < (2, "apple")   // true because 1 is less than 2, "zebra" and "apple" are not compared

   Program 2:
  (3, "apple") < (3, "bird")    // true because 3 is equal to 3, "apple" is less than "bird"

   Program 3:
  (4, "dog") == (4, "dog")      // true because 4 is equal to 4, "dog" is equal to "dog"

какая польза от этих операторов между кортежами

Почему яблоко меньше птиц?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Кортежи сравниваются по элементам за один раз, пока все элементы не будут сравнены или вы не получите ответ.

(1, 9) < (2, 3)  // true

Это верно, потому что 1 < 2.Нет необходимости идти дальше, так как проверка слева направо, как только вы обнаружите, что < равно true для одного элемента, это true для всего кортежа.Это работает точно так же, как целые числа, где оба числа имеют одинаковое количество цифр;19 < 23 из-за десятизначной цифры.Нет необходимости смотреть на цифру.


Строки сравниваются в алфавитном порядке."apple" < "zebra" потому что он идет первым по алфавиту (как если бы вы помещали список слов в алфавитном порядке).


(1, "zebra") < (2, "apple") // true

Это верно, потому что 1 < 2.Мы остановились прежде, чем даже рассмотрели "zebra" и "apple", потому что здесь они не имеют значения, сравнение уже удовлетворяет <.


(3, "apple") < (3, "bird")  // true

В этом случаемы сравниваем 3 и 3, но они равны.На данный момент у нас недостаточно информации, чтобы решить, является ли первый кортеж < вторым, поэтому мы переходим к следующему элементу.Начиная с "apple" < "bird", мы заключаем, что весь первый кортеж меньше второго.Это похоже на сравнение 30 и 31.Вы смотрите на цифру десяти и видите, что они одинаковы, поэтому вы переходите к сравнению цифры.


(4, "dog") == (4, "dog")  // true

При сравнении двух кортежей на равенство вы сравниваете элементы слева направо.,Вы можете выйти, как только обнаружите несоответствие, и решите, что ответ false.Чтобы решить, что ответом является true, вы должны сравнить все соответствующие элементы и найти, что они все совпадают.

0 голосов
/ 10 декабря 2018

Почему яблоко меньше птиц?

Потому что А для яблока предшествует В для птицы в латинском алфавите.В алфавитном порядке ABCDE ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...