Ruby 调试初选

Ruby 调试初选,ruby,Ruby,我在做这个。其中一个练习要求我: 修复该方法,以便它打印参数I中的名称和年龄 传给它 这个练习是这样的: def describe(user_info) "My name is #{user_info[0]} and I'm #{user_info[1]} years old." end 练习下面有一个提示: 在用户信息上做一个p,看看我传递给它的是什么参数 我在方法中的参数前面写了语句p user_info和一个@符号: def describe(user_info) "My nam

我在做这个。其中一个练习要求我:

修复该方法,以便它打印参数I中的名称和年龄 传给它

这个练习是这样的:

def describe(user_info)
  "My name is #{user_info[0]} and I'm #{user_info[1]} years old."
end
练习下面有一个提示:

在用户信息上做一个p,看看我传递给它的是什么参数

我在方法中的参数前面写了语句
p user_info
和一个
@
符号:

def describe(user_info)
  "My name is #{@user_info[0]} and I'm #{@user_info[1]} years old."
end

p user_info
但是收到了一个错误

有人能告诉我如何得到肯定的结果,并请解释参数后方括号的含义吗?

错误是:

class: NameError
message: undefined local variable or method `user_info' for main:Object
backtrace: RubyMonk:8:in `<top (required)>'
类:名称错误
消息:未定义的局部变量或main:Object的“user\u info”方法
回溯:RubyMonk:8:in`'

user\u info
是在方法
description
的范围内定义的局部变量。如错误消息中所述,它不是在方法之外定义的。将指令
p user\u info
移动到方法内部。

我通过以下方式解决了此问题:

def describe(user_info)
  p "My name is #{user_info["name"]} and I'm #{user_info["age"]} years old."
end

请阅读errors=)

我认为您需要执行“descripe(p)”供参考,
p
只是一个更易于调试的
put
版本。您“收到错误”。这是什么错误?包括所有相关信息可以帮助我们帮助您。