💎
Ruby学習備忘録
繰り返し処理
配列.each do |変数|とすると繰り返し処理を実行できる。
names = ["Sushi", "Ramen", "Gyoza"]
names.each do |name|
puts "I love #{name}."
end
#I love Sushi.
#I love Ramen.
#I love Gyoza.
スコープ
each文の中で定義した変数は、each文の中でのみ使用可能。
each文の外で定義した変数は、each文の外でも使用可能。
ハッシュ
キーと値は => で繋ぐ。
names = {"surname" => "Shibata", "name" => "Yusuke" }
#前者がキー。後者が値。全体をハッシュと呼ぶ。(jsのオブジェクトと同義)
puts names["surname"]
# Shibata
#ハッシュ[キー]とすると要素を取り出すことができる
names["surname"] = "Suzuki"
puts names["surname"]
#Suzuki
#ハッシュ内の要素変更
names["age"] = 28
puts names["age"]
#28
#ハッシュへの要素追加
p names.size
p names.keys
p names.values
p names.has_key?(:Suzuki)
出力方法
prints #改行無
puts #改行あり
p #デバック(文字列等要素の種類を取得)
様々なメソッド
・upcase = 文字列を大文字に変換する
※downcase = 文字列を小文字に変換する
・upcase! 破壊的なメソッド
→変更前のオブジェクトも書き換える
・?(真偽値)
→true, falseを返す
#!(元要素に影響を与える)
name = "taguchi"
puts name.upcase #TAGUCHI
puts name #taguchi
puts name.upcase! #TAGUCHI
puts name #TAGUCHI (元の文字列も大文字に書き換えられた為)
#?(真偽値)
p name.empty? #name変数が空ならばtrueを返す→false
p name.include? ("g") #name関数にgが含まれるならばtrueを返す→true
配列
colors = ["red", "blue", "yellow"]
p colors[0..2] #0から2までを取得→["red", "blue", "yellow"]
p colors[0...2] #0から2の直前までを取得→["red", "blue"]
colors [0] = "pink"
colors[1..2] = ["white", "gold"]
colors.push("gold") #末尾に指定した要素を追加
colors << "silver" # pushと同義
p colors.size #要素数を取得 3
p colors.sort #アルファベット順に並び替え
要素の変換
x.to_f #xを浮動小数点に変換
y.to_i #yを整数に変換
scores.to_a.to_h #scoresを配列(array)に変換後、ハッシュに変換
%を用いた記載方法
"Hello" → %Q(Hello)
'Hello' → %q(Hello)
["red", "blue", "yellow"] → %W(red, blue)
繰り返し処理
while, times
#timesは繰り返す回数が決まっている場合使用
for i in 15..20
p i
end
#15から20の整数値からiを繰り返し取得する
for color in ["red", "blue"] do
p color
end
#colorという配列から要素を繰り返し取得する
for name, score in {taguchi:200, fkoji:400}do
puts "#{name}: #{score}"
end
#name, scoreを含むハッシュからハッシュ内の要素を繰り返し取得する
---------------------------------------------------
# 以下のように書き換えも可能
(15..20).each do |i|
p i
end
["red", "blue"].each do |color|
p color
end
{taguchi:200, fkoji:400}.each do |name, score|
puts "#{name}: #{score}"
end
ループ処理
loop :永久ループ
break:ループ処理を抜ける
next :ループ処理を一度のみスキップ
メソッド定義
def sayHi(name) # 引数
#score = 80
#メソッド内で定義された変数は、メソッド外で無効になる
puts "hi! #{name}"
#return "hi! #{name}"
#メソッド外で p sayHiとすると"hi! taguchi"が返る
end
sayHi("taguchi")
気づき
■目的の再認識
目的はあくまで創ること。現時点で上記用語や文法の丸暗記に努めることは非効率である。
→何かを実際に創る中でRubyがどのように活かされるか、試す機会を早い段階で設ける
再復習事項
■理解が浅い項目は以下
・戻り値
・クラス
・モジュール
・例外時の処理
Discussion