2015-08-13 42 views
0

我有一个小程序,用户输入他们的名字,3个点出现以符号加载,然后它在消息中输出他们的名字。访问变量在函数中,外部类没有错误

下,没有加载功能,做工精细

class Item 
    puts "Enter name" 

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

item = Item.new 

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

一旦我添加加载功能就像这样:

class Item 
    puts "Enter name" 

    def name 
    @username = $stdin.gets.chomp 
    loading 
    end 
    def loading 
    (0..2).each do |x| 
     puts "." 
    end 
    end 
end 

item = Item.new 

puts "Thankyou #{item.name}" #=> returns (0..2) 

而是在三江源消息返回的名称,它返回(0 ..2)以某种方式调用“名称”函数中的“加载”函数将其搞乱。我认为最好的办法是能够访问“名称”功能中的“用户名”变量?我听说全局变量很糟糕,但我不知道如何去做。那么我该怎么做?在Ruby中默认

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

函数返回其最后一条语句的结果,name调用loading

回答

1

可以loading后返回@username

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

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

name返回值它从loading获得,它返回从each获得的值,即它被调用的集合 - (0..2)

+0

谢谢你,比我想象的容易得多! –

相关问题