ruby字符串比较。匹配与eql?

ruby字符串比较。匹配与eql?,ruby,Ruby,当我使用.match和.eql时?对于字符串比较,他们给出了不同的结果 text_from_page = "wrong length (should be 64 characters)" error_text = "wrong length (should be 64 characters)" if(text_from_page.eql? error_text) puts 'matched' else puts 'Not matched' end 下面的比较不起作用 if(text_

当我使用.match和.eql时?对于字符串比较,他们给出了不同的结果

text_from_page = "wrong length (should be 64 characters)"
error_text = "wrong length (should be 64 characters)" 
if(text_from_page.eql? error_text)
 puts 'matched' 
else
  puts 'Not matched'
end
下面的比较不起作用

if(text_from_page.match error_text)
 puts 'matched' 
else
  puts 'Not matched'
end

有人知道原因吗

一如既往,不要只使用方法而不阅读它们的文档。可能会有重要的提示

这是:

如果两个字符串具有相同的长度和内容,则它们是相等的

这是:

如果模式不是Regexp,则将其转换为Regexp,然后在str上调用其match方法。如果存在第二个参数,则它指定字符串中开始搜索的位置

请注意有关转换的部分。在正则表达式中,除其他字符外,具有重要意义。你不能在这里随意使用match。它有一个非常特殊的功能

你很少看到。eql?在实际的Ruby代码中使用,约定如下:

text_from_page == error_text

eql?该方法主要用于内部使用。在进行比较时,以及在容器(如数组或散列)中查找内容时,它会发挥作用。

一如既往,不要只使用方法而不阅读其文档。可能会有重要的提示

这是:

如果两个字符串具有相同的长度和内容,则它们是相等的

这是:

如果模式不是Regexp,则将其转换为Regexp,然后在str上调用其match方法。如果存在第二个参数,则它指定字符串中开始搜索的位置

请注意有关转换的部分。在正则表达式中,除其他字符外,具有重要意义。你不能在这里随意使用match。它有一个非常特殊的功能

你很少看到。eql?在实际的Ruby代码中使用,约定如下:

text_from_page == error_text

eql?该方法主要用于内部使用。在进行比较时,以及在容器中查找诸如数组或散列之类的内容时,它会发挥作用。

@tadman。非常感谢。这解决了我的问题。.match比较散列值,其中.eql比较stings。

@tadman。非常感谢。这解决了我的问题。.match比较哈希值,其中.eql比较stings