我想我已经习惯了这样的话:
x++
在PHP和Java领域。但是当我在我的Rails代码中尝试这个时,它很合适:
compile error
/users/gshankar/projects/naplan/app/views/answers/new.html.haml:19: syntax error, unexpected ';'
/users/gshankar/projects/naplan/app/views/answers/new.html.haml:23: syntax error, unexpected kENSURE, expecting kEND
...}\n", 0, false);_erbout;ensure;@haml_buffer = @haml_buffer.u...
^
/users/gshankar/projects/naplan/app/views/answers/new.html.haml:26: syntax error, unexpected $end, expecting kEND
我在Ruby / Rails运算符上搜索了一下对++的引用,但找不到任何东西。对于一种专注于写作较少的语言,我觉得有点奇怪的是没有相应的++。我错过了什么吗?
答案 0 :(得分:12)
试试这个:
x += 1
答案 1 :(得分:4)
x+=1
是您在Ruby中可以做的最好的事情。
有关详细说明,请参阅Why doesn't Ruby support i++ or i-- (increment/decrement operators)?
答案 2 :(得分:3)
你真的应该问自己为什么需要增加/减少。我已经使用Ruby近两年了,并没有注意到增量和减量运算符都丢失了。可能是因为Ruby方式通常使用递增和递减运算符的操作是使用迭代器。
例如each_with_index,它为数组中的每个元素/索引对执行给定的块。
例如,此代码将遍历一个数组,输出每个元素的字符串表示形式及其索引的奇偶校验。
array = ["first", "second", "third","fourth","last"]
array.each_with_index do |object,index|
puts index % 2 ? "even" : "odd"
puts object.to_s
end
编辑:删除Fixnum扩展,提供后缀增量,因为它不起作用。经过仔细检查,没有什么可以阻止你添加它,但它会涉及用C编写你的功能,并重新编译。
答案 3 :(得分:1)