0
0

More than 1 year has passed since last update.

【Ruby】メソッドの後の感嘆符"!"について

Last updated at Posted at 2022-08-24

メソッドの中には、破壊的にデータを変更してしまうものがあり、慣習として名前に"!"が付けられます。

例えば、以下のコードがあったとします。

self.email = self.email.downcase

参考:Railsチュートリアル 第4版 6章より
https://railstutorial.jp/chapters/modeling_users?version=5.0#sec-minimum_password_standards

上記だと右辺で"self.email"を全て小文字にしてから自身に代入することで更新していますが、
.downcase!メソッドを用いることで、直接"self.email"の値を変更することができ、より簡潔に書けます。

self.email.downcase!

破壊的なメソッドは便利そうですが、一方で元の値を強制的に上書きするので、使いどころには注意ですね。

【追記2022/08/26】
@nodai2h_ITC 様よりご指摘を頂きました。
以前、"!"をメソッドに付けると破壊的なメソッドになると勘違いしていました。
しかし実際には、"downcase"と"downcase!"のように、非破壊のメソッドと破壊のメソッドで対になっているものがいくつかあるだけとのことです。詳しくは元のコメントをご確認ください。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0