ruby语法讨论。


Order.find(:all, :conditions => "name='dave'") do |order|
order.discount = 0.5
order.save
end



大家好,刚接触ruby,请各位熟悉ruby语法的帮忙解释一下上面代码的含义。尤其是第一行。

非常感谢。

2个回答

  1. 对于给定的文本,只存在一个符号对象,某个相同的写法(:a),表示同一个符号对象,但相同的字符串则表示不同的字符串对象. 2.符号是不可变的,不能对符号进行增、删、该, 但字符串可以。 3.符号是Ruby内部用来存取标识的系统元素,当给一个标量赋值时(a=1),Ruby就创建一个符号:a实际上,我们可以看到符号是个引用对象,在内存中只有一份。

如果我们把 :controller 写成"controller",那么要创建3个新的字符对象,但是我们又不需要对这些字符串进行修改操作,白白添加了很多处理器开销,而且写成符号的形式更加简练,可以更容易分别出参数和值,何乐而不为呢。

你可以看看web敏捷开发那本书。

  1. 一个查询,查询orders表中name为dave的所有记录
  2. 对集合中的单条记录设置discount为0.5
  3. 保存
  4. 和1中的do对应
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问