LoginSignup
0
0

More than 5 years have passed since last update.

Ruby 基本 memo

Posted at

Rubyの基礎を勉強し直して、
これあまり使わないけど残しておきたいなっていうmemoです.

その他

  • 定数に関して

    • 再代入時に警告は出るが、破壊的メソッドで変更を加えたときには警告は出ない
  • ?+一文字

    • その一文字の文字列オブジェクトを作成
irb(main):001:0> ?a
=> "a"
irb(main):002:0> ?test
Traceback (most recent call last):
        1: from /Users/hogehoge/.rbenv/versions/2.5.1/bin/irb:11:in `<main>'
SyntaxError ((irb):2: syntax error, unexpected '?')
?test
^

Array

  • Array#join
    • 配列の要素を文字列化。引数はセパレータとして使われる。
irb(main):036:0> t = [1,2,3]
=> [1, 2, 3]
irb(main):037:0> t.join
=> "123"
irb(main):038:0> t.join(',')
=> "1,2,3"
  • Array#delete_if == Array#reject!

    • ブロックが真になるものを取り除いた配列をreturn
    • どちらも破壊的メソッド
    • 破壊的に使わない場合はArray#reject
  • Array#find_all== Array#select

    • ブロックが真になるもの要素のみの配列をreturn
    • どちらも 非破壊的メソッド
    • 破壊的に使う場合はArray#select!
  • Array#unshiftは引数がない場合何も起こらない

    • shift, unshiftは破壊的メソッド
  • Array#concat(other_array)

    • 引数の配列を自身の後ろに結合※破壊的メソッド
  • Array#compact

    • 配列のnilを削除※非破壊的メソッド
    • 破壊的メソッドcompact!もあります
  • Array#uniq

    • 重複を削除※非破壊的メソッド
    • 破壊的メソッドuniq!もあります
  • Array#detect == Array#find

    • ブロックの値を評価、真の最初のものを返す
irb(main):045:0> a = [1,2,3]
=> [1, 2, 3]
irb(main):046:0> a.find{|a| a==2}
=> 2
irb(main):047:0> a.detect{|a| a==3}
=> 3
  • Array#map == Array#collect

    • 配列の要素それぞれに対してブロック内の処理を施した配列を返す
  • Array#zip(other_array, ...)

    • 配列に対して引数の配列と組み合わせた新しい配列を作成。
    • 足りない場合はnilが入る
    • 非破壊的メソッド(破壊的メソッドはありません)

String

  • String#*(n)

    • '文字列'*nでその文字列をn回繰り返した文字列を返却
  • ヒアドキュメント

    • 終端識別子は左寄せ
    • 改行コードも入る
    • %q()や%Q()でもかける(Qだと#{}が使えます)
irb(main):060:0> s = <<EOB
irb(main):061:0" Hello, Ruby World
irb(main):062:0" Hi, Ruby
irb(main):063:0" Goodbye
irb(main):064:0" EOB
=> "Hello, Ruby World\nHi, Ruby\nGoodbye\n"
irb(main):065:0> s
=> "Hello, Ruby World\nHi, Ruby\nGoodbye\n"
#こんな書き方も
irb(main):078:0> s = %q(
irb(main):079:0' Hello, Ruby World
irb(main):080:0' Hi, Ruby
irb(main):081:0' Goodbye
irb(main):082:0' )
=> "\nHello, Ruby World\nHi, Ruby\nGoodbye\n"
  • String#index(文字列、検索開始位置)

    • 引数の文字列がレシーバにあった場合その開始位置をreturn
  • String#chop

    • レシーバから最後の1文字を取り除いた文字をreturn。!あり
  • String#chomp

    • レシーバから改行文字列を取り除いた文字をreturn。!あり
  • String#[検索位置, 長さ]

    • 検索位置の文字列をreturn,第二引数がある場合、そこからn番目までの文字列をreturn
  • String#slice(検索位置, 長さ)

    • #[]と同意
    • 引数に正規表現が入った場合,matchする文字列を返却
  • String#delete("文字列"),String#delete!(文字列)

    • #引数の文字列を削除
    • 引数の文字列が"^文字列"の場合、その文字列以外を削除
  • String#scan

    • 引数の文字列と一致している部分を抽出して配列を作成
  • String#chr, Integer#ord

    • それぞれの文字コードに対応する数字と文字列に変換

Hash

  • Hash#invert
    • key と valueをいれかえる。非破壊的

破壊的、非破壊的メソッドに関して

ここのサイトが一覧で良さそうでした。
http://web-tenna.com/ruby-destruction-method/

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