Ruby:
コードを関数に整理する
方法:
ユーザーに挨拶する簡単なスクリプトを書いていると想像してみてください:
def greet(name)
"Hello, #{name}!"
end
puts greet("Alice") # 出力: Hello, Alice!
puts greet("Bob") # 出力: Hello, Bob!
または、円の面積を計算しているかもしれません:
def circle_area(radius)
Math::PI * radius ** 2
end
puts circle_area(5) # 出力: 78.53981633974483
よりすっきりして扱いやすいですよね?
深堀り
関数の概念は、Rubyではメソッドとも呼ばれますが、新しいものではなく、プログラミング自体ほど古いです。1950年代にさかのぼると、冗長性を減らすために導入されたサブルーチンがありました。
代替手段?もちろん、インラインコードがありますし、クラスとオブジェクトでOOPにすることも、ラムダやprocsで関数型にすることもできます。しかし、関数は秩序あるコードの基本です。パフォーマンスが欲しいですか?関数内のローカル変数は速く、return
で直ちに値を返すことができます。
実装面では、def
で関数を定義し、end
で終えます。デフォルトパラメータを設定したり、可変長関数のためにスプラットオペレータを使用したりなどができます。関数は、あなたの望むほどシンプルまたは複雑にすることができます。