今天读sexp_processor源代码,看到有多出调用 Class === Object 这样的语法,突然之间没想出来===是干嘛的了。网上搜索了一下,原来是判断后面这个对象是不是前面这个类的实例,比如
>> Object === Object.new
=> true
这个和is_a?不就没区别了吗?
>> Object.new.is_a? Object
=> true
google一把,好像是说===比is_a?更优雅,而且===被用在case...when的语法当中
case shape
when Square, Rectangle
# ...
when Triangle
# ...
else
# ...
end
上面这段代码摘自Programming Ruby