LotosLabo

プログラミング技術とか気になった情報を載せていきます

Ruby言語について6

self

Rubyでは「self」と呼ばれる式が用意されています。「self」はメソッド内で実行されると、そのメソッドを実行しているオブジェクトを参照することが出来ます。

print(self.to_s)
print(self.class.to_s)


メソッドの呼び出し

def メソッド名(引数1, 引数2, ...)
実行する処理
実行する処理
end


例:

def printHello
  print("Hello\n")
end



呼び出し方法
printHello  ← メソッド名を大文字で始めた場合は()はいらない

オブジェクト.メソッド名(引数1, 引数2, ...)

引数を付けたメソッド呼び出し

def メソッド名(変数1, 変数2, ...)
実行する処理
実行する処理
end


例:

def printHello(msg, name)
  print(msg + "," + name + "\n")
end


//呼び出し
printHello("Hello", "Yamada")


引数のデフォルト値


def メソッド名(変数1=デフォルト値1, 変数2=デフォルト値2, ...)
実行する処理
実行する処理
end


例:

def printHello(msg="No msg", name="No name")
  print(msg + "," + name + "\n")
end

printHello("Hello", "Yamada")
printHello("Hello")
printHello()



引数の配列

例:

def printHello(msg, *names)
  print(msg + "," + name + "\n")
end

printHello("Hello")
printHello("Hello", "Yamada")
printHello("Hello", "Yamada", "Endou")
printHello("Hello", "Yamada", "Endou", "Katou", "Takahashi")



出力

msg = "Hello";names = []
msg = "Hello";names = ["Yamada"]
msg = "Hello";names = ["Yamada", "Endou"]
msg = "Hello";names = ["Yamada", "Endou", "Katou", "Takahashi"]

メソッド戻り値

def メソッド名(変数1, 変数2, ...,)
実行する処理
実行する処理
return 式
end


例:

def tashizan(num1, num2) ②
  return num1 + num2   ③
end
sum = tashizan(10, 25)    ①
print("合計 = ", sum)   ④



出力
合計 = 35

多重代入


def メソッド名(変数1, 変数2, ...,)
実行する処理
実行する処理
return [要素1, 要素2, ...]
end

例:

def keisan(num1, num2)
  return num1 + num2, num1 - num2
end
plus, minus = keisan(10, 25)
print plus , "\n"
print minus , "\n"



出力

35
-15