[英]Ruby Method Calling
我計划與Ruby一起進行學校項目,本周才第一次深入研究它。 在使用“案例”功能時,我發現了一些有趣的東西。 我嘗試編寫一種方法,該方法需要一個字符串,使用“ case”檢查它是什么字符串,並根據大小寫輸出另一個字符串:
def identify_class(str)
print "Enter a value: "
str = gets.chomp
case obj
when "Hacker"
puts 'Its a Hacker!'
when "Submission"
puts 'Its a Submission!'
when "TestCase"
puts 'Its a TestCase!'
when "Contest"
puts 'Its a Contest!'
else
puts 'Its an unkown model'
end
然后,我嘗試使用以下命令進行調用:
identify_class "Hacker"
end
但是,控制台上的結果僅為“:identify_class”。 我寫的其他方法也很好。 例如,以下代碼取一個整數並返回平方。
def sqr(x)
return x*x
end
如果我用
sqr(5)
我從控制台得到25。 我也嘗試過在函數外部編寫案例,並輸出提示,接受輸入並返回正確的短語,如下所示:
print "Enter a value: "
obj = gets.chomp
case str
when "Hacker"
puts 'Its a Hacker!'
when "Submission"
puts 'Its a Submission!'
when "TestCase"
puts 'Its a TestCase!'
when "Contest"
puts 'Its a Contest!'
else
puts 'Its an unkown model'
end
控制台返回:
Enter a value: Hacker
Its a Hacker!
=> nil
似乎在Ruby中有一些關於方法調用的內容,我對此不太了解。 我嘗試閱讀一些文檔,但沒有發現與我類似的問題。 有人可以向我說明為什么方法調用無法按預期進行嗎?
編輯:
這是我所有的相關代碼。
def identify_class(str)
print "Enter a value: "
str = gets.chomp
case str
when "Hacker"
puts 'Its a Hacker!'
when "Submission"
puts 'Its a Submission!'
when "TestCase"
puts 'Its a TestCase!'
when "Contest"
puts 'Its a Contest!'
else
puts 'Its an unkown model'
end
identify_class "Hacker"
end
如果在identifier_class“ Hacker”之后沒有“ end”,則會收到意外的輸入結束錯誤。
在case語句后,您的代碼缺少結尾。 因此,控制台僅給出定義一個永不調用的函數的結果。
原來我忘了在使用“ case”后添加另一個“ end”。 以下為我工作:
def identify_class(str)
print "Enter a value: "
str = gets.chomp
case str
when "Hacker"
puts 'Its a Hacker!'
when "Submission"
puts 'Its a Submission!'
when "TestCase"
puts 'Its a TestCase!'
when "Contest"
puts 'Its a Contest!'
else
puts 'Its an unkown model'
end
end
identify_class "Hacker"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.