Sobes.tech
Middle

Ruby'de '===' operatörü nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Ruby'de === (üç eşittir) operatörü, case equality operator olarak adlandırılır.

case/when ifadelerinde kullanılır ve sınıflar tarafından, sol operand tarafından temsil edilen "kategori" veya "aralık"'a ait olup olmadığını kontrol etmek için tanımlanır.

=== operatörünün davranışı, sol operandın sınıfına bağlıdır.

Örnekler:

  • Module Sınıfı: Sağ operandın, modül/sınıf örneği veya alt sınıfı olup olmadığını kontrol eder.
    # Sağ operandın String örneği veya alt sınıfı olup olmadığını kontrol eder.
    String === "hello"
    # => true
    
  • Range Sınıfı: Sağ operandın aralık içinde olup olmadığını kontrol eder.
    # 5'in 1..10 aralığında olup olmadığını kontrol eder.
    (1..10) === 5
    # => true
    
  • Regexp Sınıfı: Dize'nin düzenli ifadeye uyup uymadığını kontrol eder.
    # "/ruby/" dizisinin /ruby/ düzenli ifadesiyle eşleşip eşleşmediğini kontrol eder.
    /ruby/ === "/ruby/"
    # => true
    
  • Proc Sınıfı: Bir blok çağırır ve sağ operandı argüman olarak kullanır.
    # Bir bloğu, argüman olarak 5 ile çağırır.
    ->(x) { x > 3 } === 5
    # => true
    
  • Symbol Sınıfı: Bir sembolü başka bir dize veya sembol ile karşılaştırır.
    # :test sembolünü "test" dizesi ile karşılaştırır.
    :test === "test"
    # => true
    

Çoğu diğer sınıfta, === == gibi davranır.

case/when'de Kullanımı:

case condition ifadesi, her when değeri üzerinde === çağrılarına eşdeğerdir ve condition sağ operand olarak kullanılır.

# String === value ile eşdeğerdir
# Ardından Integer === value
case value
when String
  # ...
when Integer
  # ...
end