digメソッドとは
digメソッドとは
digメソッド
とは、配列とハッシュから安全に値を取り出すことができるメソッド。
安全にとはどういうことか、それはdigメソッド
を使用して値を取得する場合、エラーは発生せずnil
を返してくれる。
これが配列とハッシュから安全に値を取り出すことができる理由。
# digメソッドを用いて値を取得する場合
# 存在しないmusic、rockを取得しようとする
users.dig(1, :profile, :hobbys, :music, :rock)
=> nil
配列の場合
以下のような配列があると仮定し、digメソッド
を用いてそれぞれの値を取り出してみる。
digメソッド
の引数に取得したい値のindex
を指定していくことで値を取り出すことができる。
fruits = [[ "apple",[ "banana", "grape" ]]]
# appleを取得する
fruits.dig(0, 0)
=> "apple"
# bananaを取得する
fruits.dig(0, 1, 0)
=> "banana"
# grapeを取得する
fruits.dig(0, 1, 1)
=> "grape"
ハッシュの場合
以下のようなハッシュがあると仮定し、digメソッド
を用いてそれぞれの値を取り出してみる。digメソッド
の引数に取得したい値のキーを指定していくことで値を取り出すことができる。
users =
{
name: {
first_name: '太郎',
last_name: '田中'
},
age: 25
}
# ageを取得
users.dig(:age)
=> 25
# first_nameを取得
users.dig(:name, :first_name)
=> "太郎"
# last_nameを取得
users.dig(:name, :last_name)
=> "田中"
配列とハッシュの入れ子構造の場合
以下のような配列とハッシュの入れ子構造があると仮定し、digメソッド
を用いてそれぞれの値を取り出してみる。配列とハッシュの場合同様、それぞれindex
もしくはキーを指定することで取得することができる。
users =
[
"佐藤",
profile: {
age: 30,
hobbys: {
sports: "サッカー",
manga: "ワンピース"
}
}
]
# nameを取得
users.dig(0)
=> "佐藤"
# ageを取得
users.dig(1, :profile, :age)
=> 30
# sportsを取得
users.dig(1, :profile, :hobbys, :sports)
=> "サッカー"
# mangaを取得
users.dig(1, :profile, :hobbys, :manga)
=> "ワンピース"
参考記事
Author And Source
この問題について(digメソッドとは), 我々は、より多くの情報をここで見つけました https://qiita.com/mmaumtjgj/items/3790d9f00780cbe66b62著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .