LoginSignup
0
0

More than 3 years have passed since last update.

Ruby学習4

Posted at

メソッドとか色々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...

0
0
0

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