自我可能是假的还是零的?

aba*_*n99 4 ruby ruby-on-rails

可以self评价为假或零吗?

例如...

class FooBar

  ...

  def check_this
    self && check_something_else
  end
end
Run Code Online (Sandbox Code Playgroud)

就是self &&在这种条件有必要吗?

Ant*_*y E 10

是.记住Ruby中的所有内容都是一个对象,因此self对于falsenil:

nil.instance_eval { self }  # => nil
false.instance_eval { self }  # => false
Run Code Online (Sandbox Code Playgroud)

  • 具体来说,唯一*是*falsy的对象是'false`和`nil`. (2认同)

Lin*_*ios 5

是的,但仅限于一些非常奇怪的情况:

irb(main):001:0> def false.test
irb(main):002:1>   puts "hello" if !self
irb(main):003:1> end
=> nil
irb(main):004:0> false.test
hello
=> nil
Run Code Online (Sandbox Code Playgroud)