我有一个关于在Ruby中匹配运算符的愚蠢问题。为什么Ruby使匹配运算符=~
而不是~=
?是否有历史,心理或其他考虑因素而不是后者?
我找不到任何关于此的信息,我需要对此有所了解,因为我因其他运算符(例如+=
,-=
,{{1}而输入了错误的内容},!=
和>=
将<=
放在另一个运算符的右侧,而=
则相反。
请让我高兴。
答案 0 :(得分:5)
我的观点是它更加一致。他们是几个“平等”和“匹配”的运营商。例如:
=~
代表'匹配'
!~
代表'不匹配'
==
代表'等于'
!=
代表'不等于'
答案 1 :(得分:2)
同样从更高层次的角度来看,如果你想一想用文字阅读这些符号的方式,它就会有意义:
+= -=
基本上是a = a + b
或a = a - b
添加(+
)或减法(-
)必须在之前发生
分配(=
)。 >= !=
这样的比较运算符,这些也是有道理的
您问的是a
大于(>
)或等于(=
)b
或是
a
不是(!
)等于(=
)b
所以为什么不这样写呢。 ~=
会说a
模式(~
)
匹配(=
)b
当您想要的内容为=~
,其内容为a
匹配(=
)模式(~
)b
。如果你把它们看成文字就会变得相当简洁。