#メソッドとか色々4
現在、Ruby技術者認定試験silverを取得するべく勉強中です。
言語に対する理解がまだまだなので、基本的な事からアウトプットしていきます。
##オブジェクトID
模擬問題から抜粋
foo = [1,2,3]
bar = foo
baz = foo.dup #オブジェクトをコピー
bar[3] = 4
p foo
p bar
p baz
=>[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3]
変数fooに、barの更新が適用される原理とは。
foo = [1,2,3]
bar = foo
baz = foo.dup
p foo.object_id #参照しているオブジェクトidを出力
p bar.object_id
p baz.object_id
=>70275736077180
70275736077180
70275736077160
fooとbarは同じオブジェクトを参照しているので、barが更新されるとfooもつられて更新される仕組み。
一方、bazはオブジェクトを複製したものなので、参照する対象が違うというわけ。
splitメソッド
第一引数で指定した文字列を区切り文字として、配列を生成する。
servant = "saber,archer,lancer,rider,assassin,caster,berserker"
p servant.split!(/,/)
=> ["saber", "archer", "lancer", "rider", "assassin", "caster", "berserker"]
第二引数で数値を指定する事で、配列の要素数を指定する事が出来る。
servant = "saber,archer,lancer,rider,assassin,caster,berserker"
p servant.split!(/,/, 3)
=> ["saber", "archer", "lancer,rider,assassin,caster,berserker"]
#3つ目の要素からは区切られずに一纏めにされる。
deleteメソッド(String)
引数で指定した文字をselfから削除する。!をつけると破壊的メソッドになる。
puts "0123456789".delete("0-58") #"-"を文字で挟む事で、範囲指定できる(この場合は0から5までの数値)
=> "679"
To_Be_Continued...