在ruby on rails中,感叹号后面的变量mean是什么



可能重复:
为什么在Ruby方法中使用感叹号?

我正在阅读带有MongoDB 的Rails3教程

http://www.mongodb.org/display/DOCS/MongoDB+数据+建模+和+轨道

我看到了密钥:user_id,ObjectId时间戳感叹号是什么意思??

谢谢。

 class Story
  include MongoMapper::Document
  key :title,     String
  key :url,       String
  key :slug,      String
  key :voters,    Array
  key :votes,     Integer, :default => 0
  key :relevance, Integer, :default => 0
  # Cached values.
  key :comment_count, Integer, :default => 0
  key :username,      String
  # Note this: ids are of class ObjectId.
  key :user_id,   ObjectId
  timestamps!
  # Relationships.
  belongs_to :user
  # Validations.
  validates_presence_of :title, :url, :user_id
end

通常,当Ruby中的一个方法后面跟着一个"bang"时,它会更改源。

例如,检查以下输出:

irb(main):007:0> x = 'string'
=> "string"
irb(main):008:0> x
=> "string"
irb(main):009:0> x.capitalize
=> "String"
irb(main):010:0> x
=> "string"
irb(main):011:0> x.capitalize!
=> "String"
irb(main):012:0> x
=> "String"

x.capitalize返回"String",但变量x保持小写。当我添加!('bang')到最后var x被修改。

我对mongodb总体上并不熟悉,但这可能会让我对ruby中bang的目的有所了解。

相关内容

  • 没有找到相关文章

最新更新