A Julia összehasonlító operátorai sok más nyelvéhez hasonlítanak, de a matematikakedvelőknek néhány extra lehetőséget is kínálnak.
Az egyenlőség vizsgálatára a == (egyenlő), valamint a != vagy ≠ (nem egyenlő) operátor szolgál.
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
Emellett ott vannak a különféle nagyobb/kisebb operátorok is.
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
Ahogy a Juliában gyakran, egy megfelelő szerkesztő megkönnyíti a matematikai szimbólum használatát. Írd be a \ne, \le vagy \ge karaktersorozatot, majd nyomd meg a TAB billentyűt, és megkapod a ≠, ≤ vagy ≥ jelet.
Az előző példa csak számokat használ, de a tanterv más részein látni fogjuk, hogy számos további típusnak is van rendezési viszonya, és vizsgálhatók nagyobb/kisebb relációban.
Az összehasonlító operátorok láncolhatók, ami világos és tömör szintaxist tesz lehetővé:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
Az előző példa ugyanaz, mint a 1 ≤ n && n ≤ 5.
if-felEz az elágazás teljes formája:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
Nincs szükség zárójelekre () vagy kapcsos zárójelekre {}, a behúzás pedig „csak” az olvashatóságot javítja (de az olvashatóság nagyon fontos!).
Az elseif és az else is elhagyható, és több elseif blokk is lehet.
Az end viszont kötelező.
Az elágazások egymásba ágyazhatók, bár az olvashatóság érdekében érdemes átgondoltan használni a zárójeleket, a behúzásokat és a megjegyzéseket.
Az elágazás legrövidebb formája valahogy így néz ki:
if n < 0
n = 0
end
Emlékeztetőül: feltételként csak olyan kifejezéseket használhatsz, amelyek kiértékelése true vagy false eredményt ad.
A Julia szándékosan kerüli a „truthiness” bármilyen fogalmát, így a nullértékek, az üres stringek és az üres tömbök nem egyenértékűek a false értékkel.
Egyszerű és gyakori helyzet, amikor egy feltétel alapján két érték közül kell választani.
A Julia sok más nyelvhez hasonlóan rendelkezik ternáris operátorral, hogy ezt tömörebbé tegye.
A szintaxis: conditional ? value_if_true : value_if_false.
Így az előző példa átírható:
n = n < 0 ? 0 : n
A fordító nem követeli meg a zárójeleket, de azok javíthatják az olvashatóságot.
Ebben a feladatban egy autógyár összeszerelősorának termelését elemző kódot írsz.
Az összeszerelősor sebessége 0 (kikapcsolva) és 10 (maximum) között lehet.
A legkisebb sebességén (1) óránként 221 autó készül.
A termelés lineárisan növekszik a sebességgel.
Így ha a sebesség 4, óránként 4 * 221 = 884 autót kell gyártania.
A nagyobb sebesség azonban növeli annak valószínűségét, hogy hibás autók készülnek, amelyeket aztán ki kell dobni.
Három részfeladatod van. A szükséges függvények mindegyike egyetlen egész szám paramétert kap: az összeszerelősor sebességét.
Valósítsd meg a success_rate() metódust, amely kiszámítja, mekkora valószínűséggel készül el egy darab hibátlanul egy adott sebesség mellett.
A következő táblázat azt mutatja, hogyan befolyásolja a sebesség a sikerességi arányt:
0: 0%-os sikerességi arány.1-től 4-ig: 100%-os sikerességi arány.5-től 8-ig: 90%-os sikerességi arány.9: 80%-os sikerességi arány.10: 77%-os sikerességi arány.julia> success_rate(10)
0.77
Valósítsd meg a production_rate_per_hour() metódust, amely kiszámítja az összeszerelősor óránkénti termelési rátáját, figyelembe véve a sikerességi arányt.
julia> production_rate_per_hour(6)
1193.4
Ne feledd, hogy a visszaadott érték lebegőpontos szám.
Valósítsd meg a working_items_per_minute() metódust, amely kiszámítja, hány működő autó készül percenként:
julia> working_items_per_minute(6)
19
Ne feledd, hogy a visszaadott érték egész szám: a hiányos darabok nem számítanak bele.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Julia nyelvet 35 fogalom128 feladat segítségével, valódi emberi mentorálással, mindez ingyen.