ruby错误-我可以用{..}将这个块转换成一行吗



我创建了以下内容(这是更多代码的一部分,但只有这一行有问题):

if number_to_test % divisor == 0 then number_of_divisors+= 1 end

我想用缩短它

if number_to_test % divisor == 0 { number_of_divisors+= 1 }

但我有

syntax error, unexpected '{', expecting keyword_then or ';' or 'n'
    if number_to_test % divisor == 0 { number_of_divisors+= 1 }
                                      ^
 syntax error, unexpected '}', expecting keyword_end

我想我可以把长形式改成{}
你能告诉我正确的语法吗(如果可能的话)
也许我只是想做结束块而不是if语句?

Ruby中的单行if语句是"向后"完成的,可以说是:
number_of_divisors += 1 if number_to_test % divisor == 0

正如预期的那样,unless也同样适用。

你可以做:

number_of_divisors+= 1 if number_to_test % divisor == 0 
number_of_divisors+= 1 if number_to_test % divisor == 0

会更好。

修正了:ruby没有++。

最新更新