Ruby の基礎(メソッド、クラス)
Ruby のメソッドとクラスについてです。
メソッド
メソッドの記述は def method_name からはじまり、end でブロックを終了する。
def sing puts "lalala~" end sing()
これを実行すると、プロンプト上に lalala~ と表示される。引数をとる場合、
def sing(word) # 引数をとる puts word + word + word + "~" end sing("hu")
のように書いたり、また初期値を設定したい場合は、
def sing(word = "la") # 初期値を与える puts word + word + word + "~" end sing()
のように書くこともできる。引数を複数わたして繰り返し処理を行ったり、
def sing(word = "la", num) for i in 1..num do print word end puts "~" end sing("fu", 10)
return でメソッドの呼び出し元に値を返すといったことも可能。
def sing(word = "la", num) s = "" for i in 1..num do s += word end s += "~" return s end puts sing(3)
クラス
クラスの記述は class Classname という書き方で始まる。Classname の最初の文字は大文字となる。
class Monster # クラスは英大文字からはじまる def initialize(name) # インスタンスされたときに最初に呼ばれる @name = name # インスタンス変数には @ をつける @hp = 100 + rand(100) printf("%s appeared. hp is %d\n", @name, @hp) end def damage @hp -= 10 + rand(10) printf("%s's hp is now %d\n", @name, @hp) printf("%s is now dead!\n", @name) if @hp < 0 end def heal @hp += 10 + rand(10) printf("%s's hp is now %d\n", @name, @hp) end end slime = Monster.new("slime") slime.damage slime.heal
initialize() というメソッドが最初に呼ばれ、またインスタンス変数には、最初に @ をつける。クラスからオブジェクトを作成するときは、Classname.new() という書き方になる。