如何正確使用塊?
回答
你不能這樣說:
"test" { |s| print s }
因爲"test"
是一個字符串,而不是一個方法。這同樣適用於您的do/end
版本。你可以說:
["test"].each { |s| print s }
雖然因爲數組是可枚舉和可數有each
方法。
男人,似乎我誤讀:) +1爲你;) – apneadiving
{}通常用於一個襯裏。
do/end for multiple lines。
但沒有規則,做你喜歡的。
注意:
要是你需要傳遞的一個襯墊幾個指令,他們有獨立的;
保留我的答案,對初學者仍然有用。 – apneadiving
塊只是大括號或關鍵字do/end中包含的一段代碼。如前所述,您通常對一個襯墊使用大括號,並對多行代碼執行/結束。塊只能在調用某個方法後立即出現。您可以將塊視爲匿名方法(沒有方法名的方法)。
在你的代碼中,你是在一個字符串之後立即放置一個塊,而不是方法調用。塊可用於循環,因爲這樣的:
2.times { puts "hello" } # => 2
# >> hello
# >> hello
在上面的代碼中,時間是屬於所有整數(即,它是整數類的實例方法)的方法。 times方法執行塊中的代碼兩次,並返回您調用它的對象(本例中爲2)。您可以將塊傳遞給任何方法,但不期望它們的方法將忽略該塊。
塊可以帶參數。參數放置在管道('|'字符)之間。事實證明,第一個例子中可以接受的參數如下所示:
2.times { |i| puts i.to_s + " hello" } # => 2
# >> 0 hello
# >> 1 hello
我只是剛剛觸及塊的電源的表面。您可以在線版Programming Ruby: The Pragmatic Programmer's Guide(aka PickAx Book)免費閱讀更多關於積木的信息。這是一個現在的幾個版本,但對於Ruby的介紹,你應該發現它已經足夠了。一旦你理解了塊,你可以開始使用包含在數組和哈希中的Enumerable的強大功能。
- 1. 如何使用Drupal模塊正確
- 2. 如何正確使用節點模塊
- 3. 正確使用模塊
- 4. 如何使塊浮動圖像正確
- 5. 如何在Promisify請求模塊後正確使用putAsync模塊
- 6. 如何正確使用moment.js?
- 7. 如何正確使用WL.Client.getID()?
- 8. 如何正確使用ngx_write_chain_to_temp_file?
- 9. 如何使用CALLER_IS_SYNCADAPTER正確
- 10. 如何正確使用CSS:not()?
- 11. MYSQL_FREE_RESULT如何正確使用?
- 12. 如何正確使用IXMLDOCUMENT
- 13. 如何正確使用dll
- 14. 如何正確使用QDBusPendingCallWatcher?
- 15. 如何正確使用RequireJS?
- 16. 如何正確使用Task.WhenAll()
- 17. 如何正確使用imagettftext?
- 18. 如何正確使用request.querystring
- 19. 如何正確使用gss_import_name?
- 20. 如何正確使用stdafx.h?
- 21. 如何正確使用profr
- 22. 如何使用RedirectToAction正確
- 23. 如何正確使用Topshelf.Logging
- 24. 如何正確使用Mono.Unix.UnixPipes.CreatePipes?
- 25. 如何正確使用MemoryMappedViewAccessor?
- 26. 如何正確使用dispatch_sync?
- 27. 如何正確使用cin.peek()
- 28. 如何使用replaceAll()正確
- 29. 如何正確使用MAX?
- 30. 如何正確使用VAO?
爲了將來的參考,通常包含給出的錯誤信息是一個好主意。 –