Pri la triopa egala komparilo

Kunlaboranto havis demandojn pri la === komparilo hodiaŭ kaj mi pensis ke ĝi estus bona temo por diskuti. Unu metodo por kompreni ĝin estas se a === b tiam "se mi havas ujo nomita a ĉu b nature enmeteblas tie". Ekzemple:

(1..5) === 3 #=> true
(1..6) === 6 #=> false

# do tie ĝi similas al include?

Integer === 42           #=> true
Integer === 'kvardek du' #=> false
Range   === (1..5)       #=> true

# kaj tie similas al is_a?

/ut/ === 'saluton'  #=> true
/ut/ === 'zamenhof' #=> false

# kaj tie similas al =~

Ĝi estas konata kiel la kazegala ordono en la angla kaj por pensi pri ĝi kiel la subordono uzata en kazordorno helpas multe. Sekve espereble helpos:

case foo
when bar
  baz
when quuk
  flurb
else
  blarf
end

estas tre simila al

_var = foo

if bar === _var
  baz
elsif quux === _var
  flurb
else
  blarf
end

Mi esperas ke tio helpis vin kompreni ĝin plu. Ĝi tute ne rilatas al egaleco, sed aparteneco.