如何在方法(if语句)中使用ruby时间函数?
How to use the ruby time function in a method (if statement)?
嗨,我正在做这个问题,它没有通过自动化测试,我很想知道我哪里出错了?非常感谢。
问题:
hello 函数 Should return (not puts)
'Good morning!' 在 09:00 和 12:00 之间并且
'Good afternoon!' 在 12:00 和 16:00 之间并且
'Hello!' 所有其他时间
def hello
t = Time
if t = (0900..1200)
return 'Good morning!'
elsif t = (1201..1600)
return 'Good afternoon!'
else
return "Hello!"
end
end
hello
这看起来像是一项作业,所以我会尽力不只是给出答案。您的代码中存在一些误解和不正确的语句,导致它按原样运行。
t = Time
将 class Time
分配给 t
,它不生成时间。您可以使用 irb
甚至在线 REPL 来实时了解有关变量所含内容的更多信息。
t = Time
t #=> Time
t.class #=> Class
您应该查看 ruby Time class,您会对方法 #new
、#now
和潜在的 #parse
.
您的 if 语句没有检查相等性,而是将 运行ge 个整数分配给 t
。 运行ge 是一个真值,所以如果代码 运行 第一个条件总是为真。 运行ge 语法不正确,前导零使 ruby 认为此数字是八进制,仅支持数字 0-7。
t = (0900..1200) #=> Error, it thinks 0900 is an invalid Octal
t = (900..1200)
t #=> 900..1200
t.class #=> Range
对于这个领域,您需要更加熟悉 =
赋值和 ==
相等之间的区别。还值得注意的是,integers
和 time
是 不同的 classes,因此您不能将原始时间与 运行ge 进行比较整数。
修复时间生成和时间比较应该让您走上通过测试的正确道路。
嗨,我正在做这个问题,它没有通过自动化测试,我很想知道我哪里出错了?非常感谢。
问题: hello 函数 Should return (not puts) 'Good morning!' 在 09:00 和 12:00 之间并且 'Good afternoon!' 在 12:00 和 16:00 之间并且 'Hello!' 所有其他时间
def hello
t = Time
if t = (0900..1200)
return 'Good morning!'
elsif t = (1201..1600)
return 'Good afternoon!'
else
return "Hello!"
end
end
hello
这看起来像是一项作业,所以我会尽力不只是给出答案。您的代码中存在一些误解和不正确的语句,导致它按原样运行。
t = Time
将 class Time
分配给 t
,它不生成时间。您可以使用 irb
甚至在线 REPL 来实时了解有关变量所含内容的更多信息。
t = Time
t #=> Time
t.class #=> Class
您应该查看 ruby Time class,您会对方法 #new
、#now
和潜在的 #parse
.
您的 if 语句没有检查相等性,而是将 运行ge 个整数分配给 t
。 运行ge 是一个真值,所以如果代码 运行 第一个条件总是为真。 运行ge 语法不正确,前导零使 ruby 认为此数字是八进制,仅支持数字 0-7。
t = (0900..1200) #=> Error, it thinks 0900 is an invalid Octal
t = (900..1200)
t #=> 900..1200
t.class #=> Range
对于这个领域,您需要更加熟悉 =
赋值和 ==
相等之间的区别。还值得注意的是,integers
和 time
是 不同的 classes,因此您不能将原始时间与 运行ge 进行比较整数。
修复时间生成和时间比较应该让您走上通过测试的正确道路。