我在Ruby中一个新手,并可能有人请回答为什么下面的代码不产生任何输出?:方法不返回任何东西
def method(name)
return "Hello + #{name}"
end
method("Amy")
它不给我任何结果
我在Ruby中一个新手,并可能有人请回答为什么下面的代码不产生任何输出?:方法不返回任何东西
def method(name)
return "Hello + #{name}"
end
method("Amy")
它不给我任何结果
哪输出?它只返回字符串。你需要打印它或其他东西。替换最后一个方法调用:
puts method("Amy")
然后你会发现,你可能不需要那么+
,因为你已经添加name
作为字符串的一部分
您可以使用看跌期权或打印方法打印功能结果。
puts(method("Amy"))
或者在一个变量
hello = method("Amy")
puts(hello)
嗯,首先,当你在它没有任何输出到屏幕的方法结束返回,返回方法只应该回馈一些价值。让我来举例说明,如果你这样做:
def method(name)
return "Hello + #{name}"
end
hello = method("Amy")
现在返回发送的值“你好+艾米”到“你好”的变量,因此“你好”有“你好+艾米”的价值。这就是回报在方法中的作用。 伟大的现在在红宝石屏幕上输出的东西,你需要使用放置。例如:
def method(name)
puts "Hello + #{name}"
end
method("Amy")
这会打印出“Hello + Amy”。最后,如果只想打印“Hello Amy”,那么加号就没有必要了!希望它有帮助
用'puts'替换'return'不会打印_“Hello + Amy”_,但它也会将方法返回值更改为'nil'。 – Stefan
此外,您可以省略return关键字,Ruby方法总是返回表达式的最后一行的评估结果,除非显式返回出现在它之前。如果你想明确地返回一个值,你可以使用return关键字Ex。给出如下:
def method(name)
"Hello " + "#{name}"
end
p method("Amy")
# Output : "Hello Amy"
def method(name)
return "Hello " + "#{name}"
end
p method("Amy")
# Output : "Hello Amy"
def method(name)
return "Bye " + "#{name}"
"Hello " + "#{name}"
end
p method("Amy")
# Output "Bye Amy"
该方法返回的东西,但你不使用它。要打印结果,只需编写'puts method(“Amy”)' –
请注意,'method'实际上是Ruby中的一个保留方法名,所以在使用时请小心。 – tadman
你的问题不清楚。在标题中你声称这个方法不会返回任何东西,在你说它没有产生任何输出的问题中。然后,再次,在你的问题中,你说它“没有给出任何结果”。这是三个完全不同的东西。你的*精确*问题是什么? –