逻辑等效于字符串比较

jua*_*tas 0 ruby logic if-statement

为什么这些表达式不同:

!x == "string"
Run Code Online (Sandbox Code Playgroud)

x != "string"
Run Code Online (Sandbox Code Playgroud)

至少第一个表达式不会进入我的if,当我更改它时,if代码被执行.

Ju *_*Liu 7

假设x是"foo"

!x == "string"
Run Code Online (Sandbox Code Playgroud)

扩大到

false == "string"
Run Code Online (Sandbox Code Playgroud)

这与你的第二个例子完全不同,后者扩展为:

"foo" != "string"
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,这是因为`!x =="string"`相当于`(!x)=="string"`而不是`!(x =="string")`. (2认同)