Middle
Mi az a '===' operátor Ruby-ben?
sobes.tech MI
Válasz az MI-től
A === (három egyenlő) operátor Ruby-ban az úgynevezett case equality operator.
A case/when kifejezésekben használják, és osztályok által van definiálva, hogy ellenőrizze, a jobb operandus tartozik-e a bal operandus által jelzett "kategóriába" vagy "tartományba".
A === operátor viselkedése a bal operandus osztályától függ.
Példák:
Moduleosztály: Ellenőrzi, hogy a jobb operandus egy példány vagy leszármazottja-e a modulnak/osztálynak.# Ellenőrzi, hogy a jobb operandus egy String példány vagy leszármazottja. String === "hello" # => trueRangeosztály: Ellenőrzi, hogy a jobb operandus benne van-e a tartományban.# Ellenőrzi, hogy az 5 benne van-e az 1..10 tartományban. (1..10) === 5 # => trueRegexposztály: Ellenőrzi, hogy a szöveg megfelel-e a reguláris kifejezésnek.# Ellenőrzi, hogy a "/ruby/" szöveg megfelel-e a /ruby/ reguláris kifejezésnek. /ruby/ === "/ruby/" # => trueProcosztály: Meghív egy blokkot a jobb operandussal argumentumként.# Meghív egy blokkot az 5 argumentummal. ->(x) { x > 3 } === 5 # => trueSymbolosztály: Összehasonlít egy szimbólumot egy másik szöveggel vagy szimbólummal.# Összehasonlítja a :test szimbólumot a "test" szöveggel. :test === "test" # => true
A legtöbb más osztályban a === úgy viselkedik, mint a ==.
Alkalmazás case/when-ben:
A case condition kifejezés egyenértékű egy sor === hívással minden when értéknél, a condition pedig a jobb operandus.
# Egyenértékű a String === value-vel
# Majd Integer === value
case value
when String
# ...
when Integer
# ...
end