簡體   English   中英

Ruby方法調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM