什么 在方法面前意味着什么?

ale*_*enm 1 ruby activerecord ruby-on-rails

爆炸方法在前面时意味着什么?这个简写是什么?

!post.save
Run Code Online (Sandbox Code Playgroud)

Tre*_*eyE 6

这是一个否定.在您的示例中,它表示不是post.save的结果.

如果:

post.save => true
!post.save => false
Run Code Online (Sandbox Code Playgroud)

除此以外:

post.save => false
!post.save => true
Run Code Online (Sandbox Code Playgroud)


Iva*_*rea 6

它相当于

not post.save
Run Code Online (Sandbox Code Playgroud)

通常用在if子句中,例如:

if !post.save               #if the post could not be saved for some reason
   puts 'could not save post!'
end
Run Code Online (Sandbox Code Playgroud)

这是因为如果POST请求成功,则函数save ActiveResource::Base将返回,true如果不成功则返回false.请阅读此处以获取有关该功能的更多信息.