2 flat logo on transparent 256
2018-02-26

Ruby技術者認定試験 (Silver version 2.1)対策 | !が付かない破壊的メソッド

2334

Ruby技術者認定試験 (Silver version 2.1)の出題内容で破壊的メソッドと非破壊メソッドの内容が出題されます。

!がついたメソッドが破壊的メソッドとして認識している方もいますが、!がつかない破壊的メソッドがあるので、下記に一例を記載していきます。

破壊的メソッドとは?

オブジェクトの値そのものを変更してしまうメソッドの事です。 プログラミング言語にかかわらず破壊的メソッド存在します。 Rubyの場合は以下の内容です。

str = "こんにちは, こんばんわ"
puts str.delete!("")
p str

.deleteは引数に指定した値を文字列から削除するメソッドです。 .delete!とする事で破壊的メソッドとして利用する事ができます。

str.delete!("こ")でこの文字が削除された為、再度strを表示すると"んにちは, んばんわ"と表示されます。

Rubyで破壊的メソッドを利用する際は多くの場合メソッド名の後ろに!を付与すれば破壊的メソッドとして利用することができます。

しかし以下では!を付与せずとも破壊的メソッドとして機能するので、注意が必要です

Arrayクラス|破壊的なメソッド

<<
pop
shift
unshift
push
concat
insert
[]=
fill
replace
delete_at
delete_if
delete
clear

Hashクラス|破壊的なメソッド

update
[]=
shift
delete
delete_if
replace
clear

Stringクラス|実は破壊的なメソッド

<<
concat
insert
replace
[]=

replaceは String、Hash、Arrayの各クラスに存在するので注意

以上

余談ですがRuby技術者認定試験 (Silver version 2.1)でも出題されてましたが、実は下記でhashの生成ができる

 $ p a:1,b:2  
{:a=>1, :b=>2}

Ruby技術者認定試験(Silver version 2.1)の試験概要はこちらから

初心者・独学者向け|Rubyのハッシュ入門とよく使うメソッド

初心者・独学者向け|Rubyの配列処理の入門とよく使うメソッド

初心者・独学者向け|RubyのStringクラスとよく使うメソッド

Ruby技術者認定試験 (Silver version 2.1)対策 | !が付かない破壊的メソッド

Rubyの資格試験|Ruby技術者認定試験 (Silver version 2.1)の解説と対策概要

初心者・独学者向け|Rubyのinitializeメソッドとは

前の記事
次の記事