-1
A
回答
1
裏面你fc
方法,代碼不知道什麼fb
是。在這種情況下,fa
和fb
都沒有意義。 (fa
不會拋出相同的錯誤,因爲您也在進行分配,但除此之外)。
要在您的fc
方法中使用fa
和fb
,您需要傳遞它們。試試這個:
fb = 2
fa = 100
def fc(fa, fb)
fa - fb
end
puts "#{fa}"
fa = fc(fa, fb)
puts "#{fa}"
0
功能FC不能使用變量FA或FB,因爲他們是從它的範圍(我們說的功能沒有「關閉」對這些變量)排除在外。一個PROC或lambda確實有一個封閉:
fb = 2
fa = 100
fc = proc {
fa = fa - fb
}
puts "#{fa}"
fc.call
puts "#{fa}"
+1
提到一個proc或lambda可能會超過OP的頭,因爲範圍不被理解。 –
1
fa
和fb
變量在fc
方法的情況下被定義,因此,該fc
方法不知道他們什麼。你不能在這樣的方法內使用外部作用域的變量。您需要將所需的參數傳遞給fc
方法:
fb = 2
fa = 100
def fc(fa, fb) # fc method takes two arguments: fa and fb
fa = fa - fb # Now, fc method knows about fa and fb variables/arguments
end
p fc(fa, fb) # pass fa and fb as arguments to the fc method
# => 98
相關問題
- 1. 未定義的方法,爲什麼?
- 2. 未定義的方法 'delete_car_user_path',爲什麼
- 3. 爲什麼說 - 下劃線未定義
- 4. 爲什麼'transform_keys'方法未定義?
- 5. 爲什麼我爲#找到一個未定義的方法`xpath'?
- 6. 未定義的方法錯誤,但方法在Ruby中定義...爲什麼?
- 7. 未定義的方法[]爲nil:NilClass(NoMethodError)在ruby中...爲什麼?
- 8. 爲什麼mount_griddler是一個未定義的方法?
- 9. 爲什麼我在這裏一直未定義?
- 10. 爲什麼我一直得到名稱未定義的錯誤?
- 11. 在android中,類型MyMapOverlay的方法getBaseContext()未定義?爲什麼?
- 12. 爲什麼在Rspec示例中未定義的方法「has_many」?
- 13. 調用未定義的方法。無法弄清楚爲什麼
- 14. 爲什麼我得到「未定義的方法」+'爲零:NilClass「?
- 15. 爲什麼PHP認爲我的方法未定義?
- 16. 爲什麼我在clrscr()中遇到錯誤;它說未定義?
- 17. 爲什麼content_for方法在rails視圖中未定義?
- 18. 「未定義的方法」爲
- 19. lisp爲什麼說這個函數是未定義的?
- 20. 爲什麼總是說「未定義的參考」?
- 21. 爲什麼說構造函數是未定義的?
- 22. 爲什麼$ .each會說這個JSON對象是未定義的?
- 23. 爲什麼我的功能PARAMS說是未定義
- 24. 爲什麼getEntityManager()未定義? 「無法解析方法getEntityManager」
- 25. 什麼:+ =爲scala.collection.immutable.Vector定義的方法?
- 26. 爲什麼我在rails中得到一個未定義的錯誤方法?
- 27. 祖先寶石說: 「爲未定義的方法`祖先」 ......」
- 28. 設計:未定義的方法`user_signed_in?不知道爲什麼?
- 29. 爲什麼我得到未定義的方法「保存」錯誤?
- 30. 爲什麼Rails 5.0中的方法column_types未定義?
有什麼確切* *消息時,它給你,包括行號,當您運行示例代碼?告訴我們它沒有定義是好的,但是Ruby告訴你更多,所以準確地告訴我們它說什麼通常很重要。見[問]。 –