概要
メソッド(Method)、他の言葉で関数はプログラムで処理する内容を先に定義して、必要な時読んで実行するために使います。今回のブログポストではRubyのメソッドを使う方法について説明します。
定義する
Rubyでは下記のようにメソッドを定義します。
def add(a, b)
x = a + b
return x
end
puts add(1, 2)
# 3
return
Rubyでは最後のreturn
を省略することができます。
def add(a, b)
x = a + b
end
puts add(1, 2)
# 3
最後のreturn
を省略する場合、最後に書いた値がreturnされます。
括弧
関数のパラメーターがない場合は下記のように括弧を省略することができます。
def print
puts 'Hello'
end
print
# Hello
パラメーター
パラメーターのDefault
下記のようにパラメーターのDefaultを設定することができます。
def add(a, b = 2)
x = a + b
end
puts add(1)
# 3
ブロックパラメーター
パラメーターの前に&
を使うとパラメーターをブロック(処理のグループ)を渡すことができます。
def temp(&a)
a.call
end
temp {
puts "Hello"
puts "World"
}
# Hello
# World
パラメーターで渡して貰ったブロックを実行するためにはcall
関数を使う必要があります。
def temp(&a)
a.call
end
temp do
puts 'Hello'
puts 'World'
end
# Hello
# World
可変長パラメーター
長さが変化するパラメーターは*
を使って渡すことができます。
def temp(num, *n)
puts num
puts n
end
temp(1, 2, 3)
puts '------------'
temp(1, 2, 3, 4, 5)
# 1
# 2
# 3
# ------------
# 1
# 2
# 3
# 4
# 5
undef 와 defined
undef
Rubyではundef
を使って定義したメソッドを消すことができます。
def temp
puts 'Hello'
end
temp
undef temp
temp
# Hello
# Traceback (most recent call last):
# temp.rb:9:in `<main>': undefined local variable or method `temp' for main:Object (NameError)
defined
上のようにundef
でメソッドを消すことができますし、defined
を使ってメソッドが存在するかどうかを確認することもできます。를 사용하면 메소드가 존재하는지 여부를 확인할 수 있습니다.
def temp
puts 'Hello'
end
puts defined? temp
undef temp
puts defined? temp
# method
#
definedを使う場合、定義された式の種類を意味する文字列が表示されます。
# super
# method
# yield
# self
# nil
# true
# false
# assignment
# local-variable
# local-variable(in-block)
# global-bariable
# instance-variable
# constant
# class variable
# $&
# $`
# $1
# $2
# expression
完了
これでRubyでメソッドを定義して使う方法について見てみました。また、Rubyのユニークな文法も確認しました。今から皆さんもRubyのメソッドを使って必要な処理を定義して使ってみてください。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
今見てるブログを作成た
興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。