💎

Ruby学習備忘録

2022/09/27に公開

繰り返し処理

配列.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