ブロック
- ブロックを複数行で書く場合 :
do
~ end
を使う - 1 行で書く場合 :
{}
を使う
3.times do puts "ruby" end
3.times { puts "ruby" }
メソッド
メソッド名 method_name : スネークケース
メソッドの () は省略できる
- 省略できる場合は省略することが多い
- ただし、省略するのはあくまでメソッド
呼び出し側
で、定義側
はあまり省略しない
def calc(n)
n * n
end
p calc(5)
p calc 5
クラス
クラス名 ClassName : キャメルケース
- クラス名の先頭は大文字、2 文字目以降は小文字にする
- 2 語以上の単語になる場合は、キャメルケースを使う
インスタンス変数を取得するメソッドのメソッド名
- インスタンス変数名から
@
を除いたものにすることが多い- このメソッドは、
attr_reader
メソッドを使うと 1 行で定義できる
class Drink
def order(item)
puts "#{item}をください"
@name = item
end
def name
@name
end
end
drink = Drink.new
drink.order("コーヒー")
puts drink.name # コーヒー
インスタンス変数へ代入するメソッドのメソッド名
- 慣習的に、インスタンス変数名から
@
を取り除き、末尾に =
を加えた形にすることが多い - 以下の例の場合、
name=
が変数名になる
class Drink
def name=(text)
@name = text
end
def name
@name
end
end
drink = Drink.new
drink.name= "コーヒー"
puts drink.name # コーヒー
- 変数名の末尾が
=
になっていると、メソッド名の name
と =
の間に半角スペースを空けることができるdrink.name= "コーヒー"
→ drink.name = "コーヒー"
と記述できる- 慣習に従うことで、インスタンス変数への代入が感覚的に分かりやすくなる
- 今回のメソッドは、
attr_writer
メソッドを使うと 1 行で定義できる
モジュール
モジュール名 ModuleName : キャメルケース
- クラス同様に、先頭は大文字・キャメルケースでモジュール名を定義する