Middle
Was ist der Operator '===' in Ruby?
sobes.tech KI
Antwort von AI
Der Operator === (drei Gleichzeichen) in Ruby wird als case equality operator bezeichnet.
Er wird in case/when-Ausdrücken verwendet und von Klassen definiert, um zu überprüfen, ob der rechte Operand zur "Kategorie" oder zum "Bereich" gehört, die durch den linken Operand dargestellt werden.
Das Verhalten des Operators === hängt von der Klasse des linken Operanden ab.
Beispiele:
- Klasse
Module: Überprüft, ob der rechte Operand eine Instanz oder ein Unterklassen-Objekt des Moduls/der Klasse ist.# Überprüft, ob der rechte Operand eine Instanz von String oder dessen Unterklasse ist. String === "hello" # => true - Klasse
Range: Überprüft, ob der rechte Operand im Bereich liegt.# Überprüft, ob 5 im Bereich 1..10 liegt. (1..10) === 5 # => true - Klasse
Regexp: Überprüft, ob die Zeichenkette mit dem regulären Ausdruck übereinstimmt.# Überprüft, ob die Zeichenkette "/ruby/" mit dem regulären Ausdruck /ruby/ übereinstimmt. /ruby/ === "/ruby/" # => true - Klasse
Proc: Ruft einen Block mit dem rechten Operand als Argument auf.# Ruft einen Block mit dem Argument 5 auf. ->(x) { x > 3 } === 5 # => true - Klasse
Symbol: Vergleicht ein Symbol mit einer anderen Zeichenkette oder einem anderen Symbol.# Vergleicht das Symbol :test mit der Zeichenkette "test". :test === "test" # => true
In den meisten anderen Klassen verhält sich === wie ==.
Anwendung in case/when:
Der Ausdruck case condition ist äquivalent zu einer Reihe von Aufrufen von === auf jedem when-Wert mit condition als rechter Operand.
# Entspricht String === value
# Dann Integer === value
case value
when String
# ...
when Integer
# ...
end