ドットインストール: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 #=>エラー

=====================