ドットインストール:Ruby入門#18まで
ドットインストールのRuby入門18まで修了
Ruby入門 (全22回) - プログラミングならドットインストール
メソッド呼び出しは()が合ってもなくてもOKなのね。
そしてCase文はいちいちbreakしなくても大丈夫。
いろいろな言語のルールが混ざり始めてきました(゜_゜)
▼学習まとめ▼
=====================
! 破壊的メソッド
? 真偽値を返すメソッド true false
s = "taguchi"
puts s.upcase! ⇒元データを書き換えたい場合は破壊的メソッドを使う
p s.empty? ⇒真偽値を返すメソッドには?がついている
[配列]
--宣言:sales = [5,8,4,"taguchi"]
--指定
p sales[1] = 10 指定&書き換え
p sales[0..2] 範囲指定 0,1,2を表示
p sales[0...2] =[1,2] 0から2未満を一気に書き換え
p sales[-1] 最後の要素
p sales[1,2] 一番目の要素から2個分
--配列に追加&削除
sales.push(“num”) 末尾に要素を追加
sales[1,0] = [10,11,12] 1から0番目のところに挿入 #=>[5,10,11,12,8,4]
sales[0,2] = [] 0から2個分を削除 #=>[4]
sales << 100 << 102 末尾に追加(ショートカット)
--メソッド
p sales.size 要素数を出す
p sales.sort 小さい順に並び替え
p sales.sort.reverse 大きい順に並び替え
[ハッシュ] 連想配列 key value
keyが文字列だった場合:シンボルという書き方ができる
sales = {:taguchi => 200, :fkoji => 300}
sales = {taguchi: 200, fkoji: 300}
p sales[:taguchi]
-- メソッド
p sales.size #=> 2
p sales.keys #=> [:taguchi, :fkoji]
p sales.values #=> [200,300]
p sales.has_key?(:taguchi) #=>true キーがあるかどうかの真偽を返す
[多重代入&オブジェクト変換]
a,b = 10,"5" ※多重代入
a + b #=> エラー
a + b.to_i #=>15 数字に
a + b.to_f #=> 15.0 実数に
a.to_s + b #=> 105 文字列に
{ハッシュ}⇒[配列]⇒{ハッシュ}に変換
sales = {taguchi: 200, fkoji: 300} h.to_a #=>[[:taguchi, 200], [:koji, 300]]
h.to_h #=>{:taguchi =>200, :fkoji=>300}
[%記法]
s ="hello" と s = %Q(hello) は同じ
文字列を囲むものは記号か括弧ならなんでもOK!Qも省略可能
s=%Q{hello} s=%!hello!
--"he"llo"と代入したい場合
s = "he\"llo" #=>バックスラッシュが必要
s = %Q(he"llo) #=>バックスラッシュがいらない
s = %q(hello) #=> 'hello' 小文字はシングルクォーテーション
--文字列の配列
a = %W(a b c) #=> Wと空白で区切ると配列になる
a = %w(a b c) #=> シングルクォーテーション
[if条件分岐]
--簡素化
puts "OK!" if score > 60
--真偽値
true: それ以外(0 ''を含む!)
false: false, nil(オブジェクトが存在しない)
--条件演算子
b,c = 10, 20 a = b > c ? b : c 条件演算子
条件が真ならb, 偽ならc
[case条件分岐]
signal ="red"
case signal
when "red"
puts "STOP!"
when "green", "blue" #=>複数指定も可能
puts "GO!"
when "yellow"
puts "CAUTION"
else
puts "wrong signal"
end
[while]
--while: 条件が偽になるまで処理
i=0 while i < 3 do
puts "#{i}:hello"
i += 1
end
[関数的メソッドを作る]
---メソッド定義&呼び出し
def sayHi(name ="Steve") #Steveは初期値
puts "hello!" + name
end
sayHi("Tom") #=> hello! Tom
sayHi() #=> hello! Steve -
--返り値
def hello(x,y)
s = "Hi"
return s
end
greet = hello()
puts greet #=> Hi
puts s #=>エラー
=====================