【Ruby】deleteメソッドの注意
内容
Rubyのdeleteメソッドについて
deleteメソッドの使用対象のクラスの型によって
定義上、返り値が変わってしまうことに注意です。
deleteメソッドは色々なクラスに対して定義されている
・String#delete (Ruby 3.0.0 リファレンスマニュアル)
・Array#delete (Ruby 3.0.0 リファレンスマニュアル)
・Hash#delete(key) (Ruby 3.0.0 リファレンスマニュアル)
deleteメソッド(Ruby)の注意点
Rubyのdeleteメソッドは、使用対象のクラスによって
・削除する要素を返すか
・削除指定した要素を削除した後の残りを返すか
が異なります。
削除する要素を返す
# class_object : クラスのオブジェクト # delete_target : 削除する要素 class_object.delete(delete_target) # => delete_target # 削除された要素が返り値となる
削除指定した要素を削除した後の残りを返す
# class_object : クラスオブジェクト # remain_object : deleteメソッドで削除指定した要素の残り # delete_target : 削除する要素 # remain_object = class_object - delete_target class_object.delete(delete_target) #=> remain_object # 削除した後の残りが返り値となる
返り値の違い
使用対象のクラス | 返り値 |
---|---|
Stringクラス (String#delete) | 削除指定した要素を削除した後の残り |
Arrayクラス (Array#delete) | 削除された要素 |
Hashクラス (Hash#delete(key)) | 削除された要素 (削除指定したkeyに対するvalue) |