我试图理解这四种方法之间的区别.我知道默认情况下==调用的方法equal?在两个操作数引用完全相同的对象时返回true.
===默认情况下也调用==哪个调用equal?...好吧,所以如果所有这三个方法都没有被覆盖,那么我猜
===,==并且equal?做同样的事情?
现在来了eql?.这是做什么的(默认情况下)?它是否调用操作数的hash/id?
为什么Ruby有这么多的平等标志?他们应该在语义上有所不同吗?
我在截屏视频中看到了这个,但无法弄清楚它是什么.参考表只是将其与其他运算符一起作为一般模式匹配运算符.
我一直在自学Ruby和一定问题,我试图解决我注意到很多人都在使用=~,并/\在他们的代码.我不确定它们是如何工作的,只是想解释一下.例如,我正在查看这个Pig Latin翻译器的某些代码,这是我第一次看到这些被使用.
def piglatin(word)
if word =~ (/\A[aeiou]/i)
word = word + 'ay'
elsif word =~ (/\A[^aeiou]/i)
match = /\A[^aeiou]/i.match(word)
word = match.post_match + match.to_s + 'ay'
end
word
end
Run Code Online (Sandbox Code Playgroud)
我只是对/\斜线和斜线感到困惑=~