函数中的访问变量,外部类没有错误

时间:2015-08-13 03:02:54

标签: ruby-on-rails ruby function variables scope

我有一个小程序,用户输入他们的名字,3个点出现以象征加载,然后它在消息中输出他们的名字。

以下,没有加载功能,工作正常

println(labelNode.text)

一旦我添加了这样的加载函数:

class Item
  puts "Enter name"

  def name
    @username = $stdin.gets.chomp  
  end
end

item = Item.new

puts "Thankyou #{item.name}" #=> returns name entered

它不是在thankyou消息中返回名称,而是返回(0..2),以某种方式调用" loading"功能在"名称"功能搞砸了。我认为最好的方法是能够访问"用户名" "名称"中的变量功能?我听说全局变量很糟糕,但我还是不确定如何做到这一点。那我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以在@username之后返回loading的值:

def name
  @username = $stdin.gets.chomp
  loading
  @username
end

Ruby中的函数默认返回其最后一个语句的结果,name调用loading

def name
  @username = $stdin.gets.chomp
  return loading
end

def loading
  return (0..2).each ...
end

name返回从loading获取的值,该值返回从each获取的值,该值是调用它的集合 - (0..2)。< / p>