dli*_*gat 6 ruby ruby-on-rails
是否存在一个惯用的Ruby模式来测试两个"字符串"的相等性,这与操作数是字符串还是符号无关?
我想使用一些运算符来执行此比较::abc == 'abc'.to_sym无需将操作数标准化为字符串或符号.
对于我正在寻找的那种东西,这种HashWithIndifferentAccess行为active_support是一个非常有用的类比.
如果你想在任何地方修补通用功能。
class Object
def to_s_equals? var
self.to_s == var
end
end
Run Code Online (Sandbox Code Playgroud)
如前所述,仅将符号转换为字符串,而不是将字符串转换为符号,除非您随后要使用该符号。你可以更具体,只在 Symbol 上这样做
或者,您可以为字符串和符号添加一些内容,但我想不出一个好的通用名称。
class Symbol
def equals_string? var
self.to_s == var
end
end
class String
def equals_symbol? var
self == var.to_s
end
end
Run Code Online (Sandbox Code Playgroud)
即使这样也equals不太正确,但match推断出一个正则表达式。homologous或许?(结构上对应,但功能上不一定对应)
我认为你的叙述不够简洁to_s ==。也许可以稍微明确一下执行比较的顺序。
| 归档时间: |
|
| 查看次数: |
4658 次 |
| 最近记录: |