我寫了一個小的Ruby程序,但無法訪問存儲在父類中的哈希值。如何在ruby中使用哈希值
下面是代碼:
class College
@@dep = ["cs" => 60000, "mat" => 20000, "che" => 30000]
end
class Student < College
def get_det
puts "Enter name... \n"
@name = gets
puts "Enter department...\n"
@dpt = gets
end
def set_fee
case @dpt
when "cs"
@fee = (@@dep["cs"]).to_i
when "mat"
@fee = @@dep["mat"].to_i
when "che"
@fee = @@dep["che"].to_i
else
puts "Eror!!!"
end
end
def print_det
puts "Name : #{@name}"
puts "Department : #{@dpt}"
puts "Course fee : #{@fee}"
end
end
det = Student.new
det.get_det
det.set_fee
det.print_det
我得到的輸出:
你想'@name = gets.chomp'和'@dpt = gets.chomp'。如果用戶輸入'「Bubba」,然後返回,'gets'返回'「Bubba \ n」'。 'chomp'打斷''\ n「'。如果你不'chomp','@ dpt'將不會在case語句中匹配。 –
'gets'也會保留新行,所以使用@Cary建議的'String#chomp'。另外'Sudent#set_fee'可以簡化爲'@@ dep [@dpt] .to_i'。你的層次結構很奇怪。 – ndn
請勿使用鏈接來存儲顯示輸出的頁面。鏈接腐然後中斷。而是將輸出放入問題的文本中。閱讀「[問]」和「[mcve]」。 –