Q
從Ruby的功能
0
A
回答
8
在Ruby函數,當返回值爲不明確定義,函數將返回最後聲明它評估。如果只有 a print
語句被評估,函數將返回nil
。
因此,下面的打印字符串hi
和返回nil
:
puts "hi"
與此相反,以下返回字符串hi
:
"hi"
考慮以下情況:
def print_string
print "bar"
end
def return_string
"qux" # same as `return "qux"`
end
foo = print_string
foo #=> nil
baz = return_string
baz #=> "qux"
但是請注意,你可以print
和return
出來的東西同樣的功能:
def return_and_print
print "printing"
"returning" # Same as `return "returning"`
end
以上將print
字符串printing
,但返回字符串returning
。
請記住,你總是可以明確定義返回值:
def hello
print "Someone says hello" # Printed, but not returned
"Hi there!" # Evaluated, but not returned
return "Goodbye" # Explicitly returned
"Go away" # Not evaluated since function has already returned and exited
end
hello
#=> "Goodbye"
所以,總而言之,如果你想打印出來的東西的功能,比方說,到控制檯/日誌 - 使用print
。如果你想返回那個東西出來的功能,不要只是print
它 - 確保它返回,顯式或默認。
1
第一個使用的puts
方法寫「你好」到控制檯,並返回nil
第二個返回字符串「喜」,不打印
下面是一個例子一個IRB會話:
2.0.0p247 :001 > def hello
2.0.0p247 :002?> puts "hi"
2.0.0p247 :003?> end
=> nil
2.0.0p247 :004 > hello
hi
=> nil
2.0.0p247 :005 > def hello
2.0.0p247 :006?> "hi"
2.0.0p247 :007?> end
=> nil
2.0.0p247 :008 > hello
=> "hi"
2.0.0p247 :009 >
0
將它打印到控制檯。 所以
def world
puts 'a'
puts 'b'
puts 'c'
end
將打印 '一',那麼 'B',那麼 'C' 到控制檯。
def world
'a'
'b'
'c'
end
這將返回的最後一件事,所以你只能看到「C」
相關問題
- 1. 從控制器功能(Ruby on Rails的)
- 2. Ruby on Rails功能
- 3. ruby目錄功能
- 4. Ruby on Rails的功能本
- 5. Ruby的ERB like功能python
- 6. Ruby中的LINQ功能
- 7. 奇特功能? Ruby陣列
- 8. 結合多個Ruby功能
- 9. 通話功能,從功能
- 10. 執行在Rails的Ruby的功能
- 11. 最喜歡的功能Ruby on Rails的
- 12. Ruby on Rails的,請從模型的功能在控制器
- 13. 擴展Ruby類(散)的新功能(recursive_merge)
- 14. Ruby的功能列表文件遞歸
- 15. 在功能上的Ruby空參數
- 16. Ruby/Rails中的FTP服務器功能
- 17. 發現Ruby的功能寶石
- 18. Ruby on Rails的功能測試
- 19. 用於功能的Ruby模塊
- 20. 使用風險很大的Ruby功能
- 21. 注入變量爲Ruby的功能
- 22. ruby中的功能代碼示例
- 23. 如何模擬Ruby模塊的功能?
- 24. 從功能對象執行的功能
- 25. 如何從ruby中的程序中刪除功能?
- 26. 的setInterval從功能
- 27. 的Javascript:從功能
- 28. 從功能的PostgreSQL
- 29. jQuery的:從功能
- 30. 從Json的功能
好東西。很徹底。 @zeantsoi – franksort