Шта је тернарни или условни оператер у Рубију?

Тхе тернарни (или условни) оператор ће проценити израз и вратити једну вредност ако је тачна, а другу вредност ако је лажна. То је мало попут кратке, компактне изјаве.

Руби'с тернарни оператор има своје намене, али је и мало контроверзан.

Пример Тернарног оператера

Погледајмо овај пример:

Овде се условни оператор користи за избор између два низа. Читав израз оператора је све, укључујући условну, упитник, две жице и двоточку. Општи формат овог израза је следећи: условни? тачно нетачно.

Ако је условни израз истинит, тада ће оператор проценити као прави израз. У супротном, то ће се оценити као лажни израз. У овом примјеру налази се у заградама, тако да не омета операторе спајања стрингова који га окружују.

Другим речима, условни оператор је попут ан ако изјава. Запамтите да ако изјаве ин Руби процијените на задњу вриједност у блоку који се извршава. Дакле, можете преписати претходни пример овако:

Овај код је функционално еквивалентан и можда је мало лакше разумети. Ако ја је већи од 10, ако сама изјава ће проценити низ "већи од" или ће низу оценити мање од или једнак. "То је иста ствар коју ради и тернарни оператор, само што је тернарни оператор више компактан.

instagram viewer

Употребе за Тернарног оператера

Дакле, какве користи користи тернарни оператор? Има користи, али нема их много, и без тога бисте се добро слагали.

Обично се користи да се обуче у вредности у којима би услови били превише гломазни. Такође се користи у додељивању променљиве за брз избор између две вредности.

Ево два типична случаја употребе који ћете видети код тернарног оператера:

Можда сте приметили да ово изгледа прилично не-Руби. Сложени изрази једноставно не припадају једној линији у Рубију - обично је раздвојена и једноставнија за читање. Међутим, видећете овог оператера и он се може ефикасно користити без давања из руке.

Једно правило које треба слиједити је да ако користите овај оператор за одабир између двије вриједности са једноставним увјетним, у реду је користити. Ако радите нешто сложеније, вероватно бисте користили ако уместо тога.

instagram story viewer