A ternáris feltételes kifejezés rövidebb módja az egyszerű if/else utasítások leírásának.
Ha egy if/else utasítás csak két ágat tartalmaz, az egyiket arra az esetre, amikor a feltétel igaz, a másikat pedig arra, amikor hamis, átírhatod ternáris feltételes kifejezéssé.
A ternáris operátorok a ? és a : szimbólum együttesével bontják két részre a feltételt:
condition ? true_branch : false_branch
A ? bal oldalán lévő kód a feltétel, a jobb oldalán pedig a két lehetséges ág található, amelyeket a : választ el egymástól.
Ha a feltétel igaz, akkor a : bal oldalán lévő kód fut le.
Ha a feltétel hamis, akkor a : jobb oldalán lévő kód fut le.
Például:
if traffic_light == 'green'
cross_the_road
else
wait
end
átírható így:
traffic_light == 'green' ? cross_the_road : wait
Ebben a feladatban egy mozi weboldalához készítesz szabályokat.
A mozi kedvezményt ad a nyugdíjasoknak. Aki 60 éves vagy idősebb, 10.00-t fizet egy jegyért. Aki fiatalabb, a teljes 15.00-t fizeti.
Írd meg a Moviegoer#ticket_price metódust egy ternáris operátorral.
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
A mozi egyszerűsített korhatár-ellenőrzést alkalmaz. Ha elmúltál 18, nézhetsz ijesztő filmeket. Ha fiatalabb vagy, akkor nem nézheted meg őket.
Valósítsd meg a Moviegoer#watch_scary_movie? metódust.
Adja vissza, hogy valaki megnézheti-e a filmet vagy sem.
Moviegoer.new(21).watch_scary_movie?
#=> true
Moviegoer.new(17).watch_scary_movie?
#=> false
A mozinak van egy Movie Club nevű programja. A tagok ingyen popcornt kapnak, valahányszor megnéznek egy filmet.
Valósítsd meg a Moviegoer.claim_free_popcorn! metódust.
Ha a néző tagja a Movie Clubnak, megkapja a neki járó ingyen popcornt.
Ha nem, a metódusnak a kód elején definiált UnsupportedOperation kivételt kell dobnia.
Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿
Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
Ebben a feladatban a UnsupportedOperation kivételt egy adott scope-ra kell definiálnod.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Ruby nyelvet 21 fogalom121 feladat segítségével, valódi emberi mentorálással, mindez ingyen.