我需要将以下循环从 JavaScript 翻译成 Ruby:
for(i=0;i<=b.length-1;i++){
if(!(i%2)){
c+=b[i]
}
}
下面是我尝试用 Ruby 编写相同内容的方法:
until i == b.length-1 do
unless i%2 == true
c += b[i]
i += 1
end
end
但是,Ruby 中的取模运算符似乎总是返回 false;这使得整个条件变得毫无意义。
我做错了什么?
最佳答案
你应该:
unless i%2 == 1
或者,等价地:
if i%2 == 0
意外行为的原因是 Ruby 在条件语句中将除 false
和 nil
之外的所有值(包括 0
)视为“真实” .
关于javascript - Ruby 中的模数总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093393/