Wat is de ternaire of voorwaardelijke operator in Ruby?

De ternair (of voorwaardelijk) operator evalueert een uitdrukking en retourneert één waarde als deze waar is en een andere waarde als deze onwaar is. Het is een beetje een afkorting, compact als statement.

Ruby's ternaire operator heeft zijn toepassingen, maar is ook een beetje controversieel.

Ternary Operator Voorbeeld

Laten we dit voorbeeld eens bekijken:

Hier wordt de voorwaardelijke operator gebruikt om te kiezen tussen twee strings. De gehele operator-expressie is alles inclusief de voorwaardelijke, vraagteken, twee tekenreeksen en de dubbele punt. Het algemene formaat van deze uitdrukking is als volgt: voorwaardelijk? waar onwaar.

Als de voorwaardelijke uitdrukking waar is, evalueert de operator als de ware uitdrukking. Anders wordt het geëvalueerd als de valse uitdrukking. In dit voorbeeld staat het tussen haakjes en interfereert het dus niet met de string-aaneenschakelingsoperatoren eromheen.

Anders gezegd, de voorwaardelijke operator is als een als uitspraak. Onthoud dat als verklaringen

instagram viewer
in Ruby evalueren naar de laatste waarde in het blok dat wordt uitgevoerd. Dus je zou het vorige voorbeeld als volgt kunnen herschrijven:

Deze code is functioneel equivalent en misschien wat makkelijker te begrijpen. Als ik is groter dan 10, de als statement zelf zal evalueren naar de string "groter dan" of zal evalueren naar de string "kleiner dan of gelijk aan. 'Dit is hetzelfde als wat de ternaire operator doet, alleen de ternaire operator is meer compact.

Gebruikt voor de Ternary Operator

Dus, wat voor gebruik heeft de ternaire operator? Het heeft toepassingen, maar er zijn er niet veel, en je zou het prima zonder kunnen doen.

Het wordt meestal gebruikt om te schoenlezen in waarden waar conditionals te omvangrijk zouden zijn. Het wordt ook gebruikt bij variabele toewijzing om snel te kiezen tussen twee waarden.

Hier zijn twee typische use-cases die u zult zien voor de ternaire operator:

Je hebt misschien gemerkt dat dit er nogal on-Ruby uitziet. Complexe uitdrukkingen horen gewoon niet thuis op één regel in Ruby - het is meestal opgesplitst en gemakkelijker te lezen. U zult deze operator echter zien en deze kan effectief worden gebruikt zonder uit de hand te lopen.

Een regel die moet worden gevolgd, is dat als u deze operator gebruikt om te kiezen tussen twee waarden met een eenvoudige voorwaardelijke, het OK is om te gebruiken. Als je iets complexers doet, zou je waarschijnlijk een moeten gebruiken als verklaring in plaats.