🤖
Ruby Silver 練習問題3回目の振り返り
こんにちは。WEBエンジニアのホリさんです。
今回が第6回目の記事です。
概要
Ruby Silverの問題3回目を解いて、初めて知ったことについて共有させていただきます。
Dirメソッド
ディレクトリ操作を行うメソッドになります。
pwdメソッド・・・カレントディレクトリの文字列のフルパスを返す
homeメソッド・・・ユーザのホームディレクトリを返す
Hash#invert
キーと値を入れ替えてくれるメソッド
入れ変えた結果、キーが重複していた場合、後に定義された値が返されるようになっています。
p ({a: 100, b: 100}).invert
=> {100=>:b}
<<識別子
<<識別子行から識別子行の直前までを文字列として扱います。
ヒアドキュメントに改行を入れる場合は、EOFに−を設定する必要があります。
s = <<-EOF
Hello,
Ruby
EOF
=> " Hello,\n Ruby\n"
member?
ハッシュにキーを持つか判断する
hash = {"apple" => "grate", "banana" => "ole", "orange" => "juice"}
p hash.member?("apple")
=> true
Hash#each
ハッシュにeachを使う場合、ブロックパラメータは配列になる。
h = {a: 100}
h.each {|p|
p p
}
=> [:a, 100]
Hashメソッド
Hash[]・・・空のハッシュを返す
fetch・・・キーに関連付けれた値を返す
h = {one: "test"}
p h.fetch(:one)
=> "test"
product
productはレシーバーの配列と引数の配列からそれぞれ1つ要素を取り出し新しい配列を作成し、全ての配列を要素とする配列を返します。
p [1, 2].product([3, 4])
=> [[1, 3], [1, 4], [2, 3], [2, 4]]
compact
メソッドと変数がが打っている場合、探索順位は変数が先になる
まとめ
段々とハッシュと配列のメソッドで使えるメソッドが分かってきました。
実際にファイルで書いてみて、p で途中の実行結果を確認すると細かいところまで確認できるので
一番定着しやすいと思いました。
参考URL
Discussion