Οι τελεστές σύγκρισης στη 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
Οι παρενθέσεις δεν απαιτούνται από τον μεταγλωττιστή, αλλά μπορεί να βελτιώσουν την αναγνωσιμότητα.
Σε αυτή την άσκηση θα γράψεις κώδικα για να αναλύσεις την παραγωγή μιας γραμμής συναρμολόγησης σε ένα εργοστάσιο αυτοκινήτων.
Η ταχύτητα της γραμμής συναρμολόγησης μπορεί να κυμαίνεται από 0 (εκτός λειτουργίας) έως 10 (μέγιστη).
Στη χαμηλότερη ταχύτητά της (1), παράγονται 221 αυτοκίνητα κάθε ώρα.
Η παραγωγή αυξάνεται γραμμικά με την ταχύτητα.
Έτσι, με την ταχύτητα ρυθμισμένη στο 4, θα πρέπει να παράγει 4 * 221 = 884 αυτοκίνητα ανά ώρα.
Ωστόσο, οι υψηλότερες ταχύτητες αυξάνουν την πιθανότητα να παραχθούν ελαττωματικά αυτοκίνητα, τα οποία στη συνέχεια πρέπει να απορριφθούν.
Έχεις τρεις εργασίες. Κάθε μία από τις απαιτούμενες συναρτήσεις δέχεται μία μόνο ακέραια παράμετρο, την ταχύτητα της γραμμής συναρμολόγησης.
Υλοποίησε τη μέθοδο success_rate() για να υπολογίσεις την πιθανότητα ένα τεμάχιο να παραχθεί χωρίς σφάλμα για μια δεδομένη ταχύτητα.
Ο παρακάτω πίνακας δείχνει πώς η ταχύτητα επηρεάζει το ποσοστό επιτυχίας:
0: ποσοστό επιτυχίας 0%.1 έως 4: ποσοστό επιτυχίας 100%.5 έως 8: ποσοστό επιτυχίας 90%.9: ποσοστό επιτυχίας 80%.10: ποσοστό επιτυχίας 77%.julia> success_rate(10)
0.77
Υλοποίησε τη μέθοδο production_rate_per_hour() για να υπολογίσεις τον ρυθμό παραγωγής της γραμμής συναρμολόγησης ανά ώρα, λαμβάνοντας υπόψη το ποσοστό επιτυχίας της.
julia> production_rate_per_hour(6)
1193.4
Σημείωσε ότι η τιμή που επιστρέφεται είναι κινητής υποδιαστολής.
Υλοποίησε τη μέθοδο working_items_per_minute() για να υπολογίσεις πόσα αυτοκίνητα που λειτουργούν παράγονται ανά λεπτό:
julia> working_items_per_minute(6)
19
Σημείωσε ότι η τιμή που επιστρέφεται είναι ακέραιος: τα ελλιπή τεμάχια δεν περιλαμβάνονται.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Julia με 35 έννοιες128 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.