متدها در روبی

تعریف متد، فراخوانی، پارامتر، return و متدهای بدون آرگومان در روبی

متد چیست؟

متد (Method) بلوکی از کد است که یک کار مشخص انجام می‌دهد و می‌توان آن را چندین بار فراخوانی کرد. متدها کد را منظم، خوانا و قابل استفاده مجدد می‌کنند.

تعریف متد

با کلمه کلیدی def متد تعریف می‌شود و با end تمام می‌شود:

def greet
  puts "سلام دنیا!"
end

# فراخوانی
greet  # => سلام دنیا!

متد با پارامتر

def greet(name)
  puts "سلام #{name}!"
end

greet("علی")   # => سلام علی!
greet "مریم"   # => سلام مریم! (پرانتز اختیاری)

متد با چند پارامتر

def add(a, b)
  a + b
end

puts add(5, 3)  # => 8

مقدار بازگشتی (Return)

در روبی، آخرین عبارت به‌طور خودکار برگردانده می‌شود:

def square(n)
  n ** 2  # این مقدار برگردانده می‌شود
end

puts square(5)  # => 25

return صریح

def check_age(age)
  return "کودک" if age < 18
  "بزرگ‌سال"
end

puts check_age(15)  # => کودک
puts check_age(25)  # => بزرگ‌سال

متد بدون پارامتر با پرانتز

def time_now()
  Time.now
end

puts time_now   # پرانتز اختیاری است
puts time_now()

متدهای با علامت سؤال و تعجب

قرارداد روبی:

def even?(n)
  n % 2 == 0
end

def capitalize!(str)
  str.upcase!
end

puts even?(4)  # => true

متدهای پیش‌فرض شی (self)

در سطح بالای برنامه، self شی main است:

def whoami
  self
end

puts whoami  # => main

متدهای قابل‌فراخوانی روی شی

class Calculator
  def add(a, b)
    a + b
  end
end

calc = Calculator.new
puts calc.add(5, 3)  # => 8

متدهای کلاسی (Class Methods)

class MathHelper
  def self.square(n)
    n ** 2
  end
end

puts MathHelper.square(5)  # => 25

متدهای خصوصی (Private)

class User
  def initialize(name)
    @name = name
  end

  def display
    "نام: #{format_name}"
  end

  private

  def format_name
    @name.upcase
  end
end

user = User.new("ali")
puts user.display      # => نام: ALI
# puts user.format_name # => ❌ خطا! متد خصوصی است

خلاصه

عملیاتسینتکس
تعریفdef name...end
فراخوانیname یا name()
با پارامترdef f(a, b)
returnreturn val یا آخرین عبارت
بولینdef valid?
تغییرdef save!
کلاسیdef self.method
خصوصیprivate

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط