Οι τελεστές σύγκρισης στη 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 αποφεύγει σκόπιμα κάθε έννοια "truthiness", οπότε οι μηδενικές τιμές, οι κενές συμβολοσειρές και οι κενοί πίνακες δεν είναι ισοδύναμοι με το 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.