【发布时间】:2013-01-31 18:20:35
【问题描述】:
Codecademy 的另一个问题又来了:
提出了以下挑战。
在编辑器中定义两个方法:
接受单个字符串参数、名称和 返回一个字符串问候那个人。 (确保使用 return 和 不要使用 print 或 puts。)
by_three?采用单个整数参数、数字和 如果该数字可以被三整除,则返回 true,如果 不是。请记住,结束方法名是 Ruby 的最佳实践 生成带问号的布尔值。
我在 re: 中输入的代码是..
def greeter(name)
return "Greet #{name}"
end
def by_three?(x)
if x % 3==0
returns true
else
return false
end
greeter("Brant")
by_three?(6)
控制台然后给我以下错误:
Did you define your greeter method?
好像我有。我错了吗?
【问题讨论】:
-
ps:我意识到标题应该是未定义的......对不起!
-
你错过了
by_three?的结尾 -
另外,既然你有一个比较,你不需要 if:
def by_three?(x); return x % 3 == 0; end会做同样的事情 -
感谢@JimDeville 照顾它。所以在一个布尔字符串中,第二行基本上说如果它是真的就返回它,否则返回假?
-
Ruby 默认返回最后一个表达式,因此如果您的最后一个表达式是布尔测试 (
x % 3 == 0),则返回结果(true或false)。return语句是多余的,但似乎您可能需要按照说明使用它。 tl;dr -if foo; return true; else; return false; end总是可以压缩为!!foo,或者如果你没有有有一个布尔值,foo(nil或false以外的任何东西都是认为是真的)
标签: ruby