私はちょうどRubyを学んでいます。私は、いくつかのRubyメソッドの違いを理解していません。最後に。違いは何ですか?なぜ私はもう一方を使うのでしょうか?違いダウンケースとダウンケースの違い! Rubyで
9
A
答えて
31
最後に感嘆符が付いているメソッドは、しばしばbang-methodと呼ばれます。 bangメソッドは必ずしも受信者を変更するとは限らず、感嘆符が付いていないメソッドには保証がありません。
this blog postで詳しく説明しています。投稿を引用するには:
The! !で終わるメソッド名に! は、「このメソッドは危険です。」つまり、 「危険な」バージョンの と同等のメソッドです。同じ名前の をマイナスしたものです。 「危険」は相対的なものです。 ! のメソッド名が に似ていますが、バングレスメソッド名に対応していないと、まったく意味がありません。
と
! 「この方法は が受信機を変更する」という意味ではありません。多くの 「危険な」方法では、受信者の が変更されます。しかし、そうでない人もいます。私は繰り返す:! は、メソッドが 受信者を変更することを意味しません。
11
non-bangのdowncase()メソッドは、単に文字列の縮小を表す新しいオブジェクトを返します。
バングバージョンでは、文字列自体が変更されます。
my_text = "MY TEXT"
my_new_text = my_text.downcase
puts my_new_text # will print out "my text"
puts my_text # will print out "MY TEXT" - the non-bang method doesn't touch it
my_text.downcase!
puts my_text # will print out "my text". The bang version has modified the object you're calling the method on
関連する問題
- 1. Ruby - nil値も含むハッシュの文字列値をダウンケース
- 2. ダウンケース二重のレールを削除するデータベースを保存する
- 3. Rubyのas_jsonとto_jsonメソッドの違い
- 4. sendとinstance_evalのRubyの違いは?
- 5. Rubyのブロックとブロックの違い
- 6. Rubyコードの間違い
- 7. ruby mysqlタイムスタンプの違い
- 8. ドットとオペレータ表記の違いRuby
- 9. Ruby Kernel#autoloadとModule#autoloadの違い
- 10. Ruby - 変数と@variableの違い
- 11. rubygemガードとgrunt.jsの違いは?
- 12. Ruby on Railsの違いget:homeとstatic_pages_home_url
- 13. RubyとRuby on Railsの違いは何ですか?
- 14. RubyとRuby on Railsの違いは何ですか?
- 15. とnewgemとの間違い
- 16. Ruby on Railsでのセレンとカピバラの違いは何ですか?
- 17. Rubyでは、String()と#to_sの違いは何ですか?
- 18. .irb_historyと.irb-historyの違い
- 19. rubyのstring.split( "、" -1)とstring.split( "、"、 - 4)の違いは何ですか?
- 20. Rubyの `Fixnum`と` 3`の違いは何ですか?
- 21. rubyのkeyword_endとend-of-inputの違いは何ですか?
- 22. RubyのObjectとBasicObjectの違いは何ですか?
- 23. Rubyのputメソッドとwriteメソッドの違いは何ですか?
- 24. RubyのString.newと文字列リテラルの違いは何ですか?
- 25. .NET/JavaとRubyのドメインモデリングの主な違いは何ですか?
- 26. Ruby IOストリームでの再割り当てと再オープンの違い
- 27. Rubyのdupとcloneの違いは何ですか?
- 28. Ruby on Railsの@userとuserの違いは何ですか?
- 29. 「 '」と「'」の違い
- 30. {!!の違い!!}と{{}}