当我今天查看ActiveRecord
源代码时,我偶然发现了这些行
name = -name.to_s
和
ar.aggregate_reflections = ar.aggregate_reflections.merge(-name.to_s => reflection)
-
运算符在符号name
上的作用是什么?
当我今天查看ActiveRecord
源代码时,我偶然发现了这些行
name = -name.to_s
和
ar.aggregate_reflections = ar.aggregate_reflections.merge(-name.to_s => reflection)
-
运算符在符号name
上的作用是什么?
这是String#-@
:
返回字符串的冻结副本,可能是预先存在的副本.
例子:
a = "foo"
b = "foo"
a.object_id #=> 6980
b.object_id #=> 7000
vs:
a = -"foo"
b = -"foo"
a.object_id #=> 6980
b.object_id #=> 6980