Тернарний оператор - це коротший спосіб записати прості конструкції if/else.
Якщо конструкція if/else містить лише дві гілки, одну для випадку, коли умова є правдою, і одну для випадку, коли вона є неправдою, її можна переписати як тернарний оператор.
Тернарні оператори використовують комбінацію символів ? і :, щоб розділити умову:
condition ? true_branch : false_branch
Код ліворуч від ? - це умова, а код праворуч містить дві можливі гілки, розділені символом :.
Якщо умова - правда, виконується код ліворуч від :.
Якщо умова - неправда, тоді виконується код праворуч від :.
Наприклад:
if traffic_light == 'green'
cross_the_road
else
wait
end
можна переписати так:
traffic_light == 'green' ? cross_the_road : wait
У цій вправі ми створимо правила для сайту кінотеатру.
Кінотеатр пропонує знижку для «пенсіонерів за віком». Хто досяг 60 років або старший, платить за квиток 10.00. Молодші платять повну ціну 15.00.
Напишіть метод Moviegoer#ticket_price, використавши тернарний оператор.
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
У кінотеатрі діє спрощена система перевірки віку. Якщо глядачеві 18 років або більше, він може дивитися фільми жахів. Якщо менше, то не може.
Реалізуйте метод Moviegoer#watch_scary_movie?.
Він має повертати, чи дозволено дивитися фільм.
Moviegoer.new(21).watch_scary_movie?
#=> true
Moviegoer.new(17).watch_scary_movie?
#=> false
У кінотеатрі є програма «Кіноклуб». Учасники отримують безкоштовний попкорн, коли дивляться будь-який фільм.
Реалізуйте метод Moviegoer.claim_free_popcorn!.
Якщо відвідувач є учасником кіноклубу, він має отримати свій безкоштовний попкорн.
Якщо ні, метод має згенерувати виняток UnsupportedOperation, визначений на початку коду.
Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿
Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
У цій вправі ми маємо визначити виняток UnsupportedOperation для конкретної області видимості.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Ruby, а також 21 концепція121 вправа та справжнє наставництво від людей, і все це безкоштовно.