ruby-on-rails - 冒号前缀和附加之间的区别(:item vs item:)

标签 ruby-on-rails ruby colon

在 ruby​​ 中追加和前置冒号有什么区别?

例子:

#In rails you often have things like this:
has_many :models, dependent: :destroy

为什么 dependent: 有一个冒号,而 :models:destroy 有一个冒号?有什么区别?

最佳答案

这是 Ruby 1.9 中的新语法,用于定义散列中作为键的符号。

前置和附加的:都定义了一个symbol,但后者仅在散列初始化期间有效。

你可以想到一个symbol作为轻量级字符串常量。

相当于

:dependent => :destroy

在 1.9 之前,散列是使用稍微冗长且难以输入的语法定义的:

hash = {
   :key => "value",
   :another_key => 4
}

他们在 1.9 中简化了它:

hash = {
   key: "value",
   another_key: 4
}

如果您曾经编写过要在 1.9 之前的 Ruby 上使用的模块,请确保使用较旧的语法。

关于ruby-on-rails - 冒号前缀和附加之间的区别(:item vs item:),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217039/

相关文章:

ruby-on-rails - ruby on rails 知道你什么时候来自 redirect_back

ruby-on-rails - form_for 与关联 - 如何提供父 ID?

javascript - : mean in jquery? 是什么意思

ruby-on-rails - 如何输出不同的日期格式。 rails

ruby-on-rails - ruby rails : What Reporting and/or Charting Tools Are Available?

ruby-on-rails - 使用 rails 中的 ip 自动检测用户的时区

ruby-on-rails - 为什么我收到422-无法处理的实体错误

ruby - 为什么这个表达式会导致浮点错误?

java - 为什么我们必须使用双冒号来引用方法?

linux - 从文件名中删除冒号