🤖

Ruby Silver 練習問題3回目の振り返り

2022/02/19に公開

こんにちは。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

https://docs.ruby-lang.org/ja/latest/class/Dir.html#S_HOME
https://docs.ruby-lang.org/ja/latest/class/Hash.html

Discussion