Оператори порівняння в Julia схожі на оператори в багатьох інших мовах, хоча й мають додаткові можливості для тих, хто любить математику.
Для перевірки рівності є оператори == (дорівнює) та != або ≠ (не дорівнює).
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
Крім того, є різні оператори «більше/менше».
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
Як часто буває в Julia, з належним редактором користуватися математичним символом легко.
Наберіть \ne, \le або \ge, а потім натисніть TAB, щоб отримати ≠, ≤ або ≥.
У попередньому прикладі були лише числа, але в інших частинах силабусу ми побачимо, що різні додаткові типи мають порядок і їх можна порівнювати на більше чи менше.
Оператори порівняння можна обʼєднувати в ланцюжок, що дає змогу записати умову чітко й лаконічно:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
Попередній приклад означає те саме, що й 1 ≤ n && n ≤ 5.
if
Це повна форма умовної конструкції if:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
Круглі дужки () чи фігурні дужки {} тут не потрібні, а відступи призначені «лише» для кращої читабельності (але читабельність дуже важлива!).
І elseif, і else необовʼязкові, а блоків elseif може бути кілька.
Але end обовʼязковий.
Можна вкладати умовні конструкції if одну в одну, хоча для кращої читабельності варто продумано добирати дужки, відступи й коментарі.
Найкоротша форма умовної конструкції if має такий вигляд:
if n < 0
n = 0
end
Нагадаємо: як умови можна використовувати лише вирази, що обчислюються до true або false.
Julia свідомо уникає будь-якого поняття «правдивості», тож нульові значення, порожні рядки тексту (англ. string) і порожні масиви не еквівалентні false.
Часто буває потрібно вибрати одне з двох значень залежно від умови.
Як і багато мов, Julia має тернарний оператор, щоб записати це лаконічніше.
Синтаксис такий: conditional ? value_if_true : value_if_false.
Отже, попередній приклад можна переписати так:
n = n < 0 ? 0 : n
Компілятор не вимагає дужок, але вони можуть покращити читабельність.
match?Конструкції match/case у базовій мові наразі немає.
Для простих випадків радимо використовувати if..elseif..else.
Для складнішого зіставлення зі зразками, як у Scala, популярним є пакет Match.jl.
Однак, як і більшість сторонніх пакетів, Match недоступний у раннері тестів Exercism.