プログラミング学習3/16

data = { user: { name: "satou", age: 33 } }

# 以下に回答を記載
p data[:user][:name]

"satou"が出力される

 

foods = %w(いか たこ うに しゃけ うにぎり うに軍艦 うに丼)

# 以下に回答を記載
if foods.include?("うに")
puts "好物です"
else
puts "まぁまぁ好きです"
end

三項演算子を使うと

foods.each do |food|
puts food.include?("うに") ? "好物です" : "まぁまぁ好きです"
end

と書き換えられる。

プログラミング学習3/15 その2

params = {name: "Takashi", mail: "hoge@fuga", address: "Saitama"}

params.each do |key_value|
puts key_value
end

出力結果

name
Takashi
mail
hoge@fuga
address
Saitama

ハッシュ同士の比較もできる

params1 = {name: "Takashi", mail: "hoge@fuga", address: "Saitama"}
params2 = {name: "Takashi", mail: "hoge@fuga", address: "Saitama"}

puts params1 == params2

・キーのみ出力する

params = {name: "Takashi", mail: "hoge@fuga", address: "Saitama"}

params.each_key do |key|
puts "キー:#{key}"
end

・バリューのみ出力する

params = {name: "Takashi", mail: "hoge@fuga", address: "Saitama"}

params.each_value do |value|
puts "バリュー:#{value}"
end

・キーとバリューを逆にする

params = {name: "Takashi", mail: "hoge@fuga", address: "Saitama"}

puts params.invert

・ハッシュにはこういう定義の仕方もある

params = {"name" => "Takashi", "mail" => "hoge@fuga", "address" => "Saitama"}

・nameがあるかどうかを判別

params = {"name" => "Takashi", "mail" => "hoge@fuga", "address" => "Saitama"}

if params["name"]
puts "nameのデータがあります"
end

・ifelse

params = {"name" => "Takashi", "mail" => "hoge@fuga", "address" => "Saitama"}

if params["name"]
puts "nameのデータがあります"
else
puts "nameのデータがないです"
end

プログラミング学習3/15

include?メソッドは、引数で指定した要素が、配列中に含まれているか判定するメソッド

https://techacademy.jp/magazine/19475

二次元配列とは、配列の中に配列の入った、入れ子のデータ構造のこと。

https://techacademy.jp/magazine/19571

二次元配列から要素を取り出す

https://qiita.com/namitop/items/68297d6fe236fd466082

多次元配列を1次元配列にする

https://www.sejuku.net/blog/70437

配列の要素の中で重複している要素を削除する

https://techacademy.jp/magazine/19919

 

sports.flatten
sports.uniq

sports.each.with_index(1) do |sport, i|
puts "No#{i} #{sport}"
end

と書くと、出力結果は

No1 サッカー
No2 バスケ
No3 野球
No4 ["フットサル", "野球"]
No5 水泳
No6 ハンドボール
No7 ["卓球", "サッカー", "ボルダリング"]

これを

sports.flatten.uniq.each.with_index(1) do |sport, i|
puts "No#{i} #{sport}"
end

とすると出力結果は

No1 サッカー
No2 バスケ
No3 野球
No4 フットサル
No5 水泳
No6 ハンドボール
No7 卓球
No8 ボルダリング

プログラミング学習3/14

each

https://qiita.com/gestalt/items/d2c663b4be524581747e

神里さん僕はよく、Railsの勉強で行き詰まったらRubyの基礎に戻ってモチベーション回復させてましたw
あと、単純にRubyだけでプロブラム組むのはめちゃくちゃ勉強になりますよ
おみくじプログラム
自動販売機プログラム
じゃんけんプログラム
など、まずは超簡単なことからでもいいので、Rubyだけで一つのプログラムを作ることに挑戦してみてください
簡単な足し算引き算ができる計算機から作ってもいいと思います
そうやってプログラムを組んでると、だんだん
「ああしたい」
「こうしたい」
といった欲が出てきて、自然と自分で色々調べるようになります
何か作りながらだと、無意識に学習を進めるようになるため、精神的にかなり楽です
めちゃくちゃ簡単なことでもいいので、Rubyだけでなにかプログラムを組んでみることにも挑戦してみるといいですよ

 

繰り返し文&配列

users.each do |user|

puts  "#{users}さん

配列の名前がそれぞれさん付きで出力される

users.each.with_index do |user, i|