はじめに
今回は完全に自分用アウトプットです。
Rubyの問題を解いて、プログラムの知識や考え方を深堀りするために記述します。
Q1 ハッシュの基礎
まずはハッシュの基礎
puts hash.keys
puts hash.values
のメソッドを実行した際に英語と数字で123が表示されるように記述。
hash = {one: 1, two: 2. three: 3}
これは簡単。
hash = { キー: 値}
基礎中の基礎。
Q2 二重ハッシュ
続いて二重ハッシュ
user_data = [
{user: {profile: {name: 'George'}}},
{user: {profile: {name: 'Alice'}}},
{user: {profile: {name: 'Taro'}}},
]
ユーザーの名前だけが出力されるようコーディングする
user_data.each do |u|
puts u[:user][:profile][:name]
end
抑えるべきポイントは
ハッシュ[取得したい値のキー]
nameの値を出力するためには
ハッシュ[取得したい値のキー][取得したい値のキー][取得したい値のキー]
のように連続して記述そうすることで3つ目の値を取得できる。
以下が出力結果
George
Alice
Taro
Q3 クラスとインスタンスの概念initialiszeメソッド
続いてクラスとインスタンスの概念
class Article
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
end
上記コードを使用し、以下の出力結果を得られるよう記述する。
著者: 阿部
タイトル: Rubyの素晴らしさについて
本文: Awesome Ruby!
class Article
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
def author
@author
end
def title
@title
end
def content
@content
end
end
article = Article.new("阿部", "Rubyの素晴らしさについて", "Awesome Ruby!")
puts "著者: #{article.author}"
puts "タイトル: #{article.title}"
puts "本文: #{article.content}"
記述は長いですが、抑えるべきポイントはinitializeメソッドです。インスタンスが生成された瞬間に、インスタンスが実行する処理を定義するインスタンスメソッド。article = Article.new("阿部", "Rubyの素晴らしさについて", "Awesome Ruby!")
の記述でインスタンスが生成されているのでその瞬間に実行されている。
Q4 特定条件のみに呼応するプログラムの作成
続いて特定条件のみに呼応するプログラムの作成
DataクラスはRubyの標準ライブラリ機能。使用するにはrequire "date"
を記述。
今日の曜日はDate.today.wday
のように記述。
使用例
require "date"
day = Date.today.wday
puts day
この記述で木曜日なら4が出力される。
これらを用いて今日の曜日を表示するコードをDataクラスを使用して記述
ただし、金曜日であれば、「今日は金曜日だ!」を出力
require "date"
day = Data.today.wday
days = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"]
if == 5
puts "今日は#{days[day]}だ!"
else
puts "今日は#{days[day]}"
end
0=日曜日〜6=土曜日
Q5 ifをunlessに書き換える
if a + b > 0
puts "計算結果は0より大きいです"
end
をunlessというメソッドを用いて書き換える。
unlessはifの逆。falseの場合に処理が実行されるメソッド
unless a + b <= 0
puts "計算結果は0より大きいです"
end
詳しifとunlessを見ると。
if
if 条件式
条件式がtrueの時に実行する処理
else
条件式がfalseの時に実行する処理
end
unless
unless 条件式
条件式がfalseの時に実行する処理
else
条件式がtrueの時に実行する処理
end
終わりに
簡単な内容だが、基礎固めのため毎日5問程度で進めていく。
全部で35問1週間かけて解いていきます。