2015-08-13 63 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

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

相關問題