如何解决可以使用红宝石中的数字作为名称的方法吗?
这有效:
if 1
if 1
elsif 2
elsif 3
end
end
但这会产生语法错误:意外的'(',期望出现keyword_then或';'或'\ n'。我正在尝试执行方法1
。
if 1
if 1()
elsif 2
elsif 3
end
end
根据错误我不知道该怎么办。代码前面的内容引起了问题吗?还是代码后面的内容引起了问题?
解决方法
写作时
1()
这是调用名为1
的方法的语法。
但是1
在Ruby中不是合法的方法名称,方法名称不能以数字开头。
如果范围内有方法foo
,则可以在编写foo()
的地方编写1()
,但是多余的是包括括号,因为它们是包装器方法的参数,并且您没有传递任何参数。
1
被ruby解释为整数,如果打开irb会话并键入1()
,您将看到与看到的“语法错误,意外的'('”)相同的错误消息,它与if
语句中的条件无关,这很好:
def foo
true
end
if foo()
puts "hooray"
else
puts "boo"
end
,
-
不允许使用以红宝石数字开头的方法。
-
您不应使用数字名称定义方法。
-
不必在红宝石中使用括号来执行方法。
如果不传递参数:
some_method
如果您传递一些参数:
some_method 'white'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。