首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ruby错误-我可以用{...}将这个块转换成一行吗?

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

Stack Overflow用户
提问于 2012-03-05 15:06:28
回答 3查看 84关注 0票数 1

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

代码语言:javascript
运行
复制
if number_to_test % divisor == 0 then number_of_divisors+= 1 end

我想把它缩短为

代码语言:javascript
运行
复制
if number_to_test % divisor == 0 { number_of_divisors+= 1 }

但我得到了

代码语言:javascript
运行
复制
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

我想我可以把长格式改成{}

你能告诉我正确的语法(如果可能的话)吗?

也许我只是在考虑do end块而不是if语句?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-05 15:09:46

可以这么说,Ruby中的一行if语句是“反向”完成的:

代码语言:javascript
运行
复制
number_of_divisors += 1 if number_to_test % divisor == 0

不出所料,同样的情况也适用于unless

票数 5
EN

Stack Overflow用户

发布于 2012-03-05 15:09:41

你可以这样做:

代码语言:javascript
运行
复制
number_of_divisors+= 1 if number_to_test % divisor == 0 
票数 1
EN

Stack Overflow用户

发布于 2012-03-05 15:10:43

代码语言:javascript
运行
复制
number_of_divisors+= 1 if number_to_test % divisor == 0

那就更好了。

修正: ruby没有++。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9562839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档