Định nghĩa và Gọi Hàm trong Ruby
Trong Ruby, hàm (method) là một tập hợp các câu lệnh được đóng gói để thực hiện một nhiệm vụ cụ thể. Việc sử dụng hàm giúp tái sử dụng mã, làm cho chương trình dễ đọc và bảo trì hơn.

1. Định nghĩa hàm trong Ruby
Trong Ruby, chúng ta sử dụng từ khóa def
để định nghĩa một hàm. Cấu trúc chung như sau:
def ten_ham(tham_so1, tham_so2, ...)
# Code thực thi
return gia_tri # (Có thể bỏ qua từ khóa `return`)
end
Ví dụ 1: Định nghĩa một hàm đơn giản
def chao_mung
puts "Xin chào, Ruby!"
end
Hàm trên khi được gọi sẽ in ra dòng chữ "Xin chào, Ruby!"
.
2. Gọi hàm trong Ruby
Để gọi một hàm, chỉ cần sử dụng tên hàm:
chao_mung # Kết quả: "Xin chào, Ruby!"
Lưu ý rằng nếu hàm không có tham số, ta có thể gọi mà không cần dấu ()
.
3. Hàm có tham số
Hàm có thể nhận tham số để thực hiện xử lý với dữ liệu đầu vào.
Ví dụ 2: Hàm có tham số
def xin_chao(ten)
puts "Xin chào, #{ten}!"
end
xin_chao("Nam") # Kết quả: "Xin chào, Nam!"
xin_chao("Linh") # Kết quả: "Xin chào, Linh!"
4. Hàm có giá trị trả về
Mặc định, Ruby trả về giá trị của biểu thức cuối cùng trong hàm mà không cần từ khóa return
. Tuy nhiên, bạn vẫn có thể sử dụng return
nếu muốn.
Ví dụ 3: Hàm trả về giá trị
def tong(a, b)
a + b # Giá trị cuối cùng được trả về
end
puts tong(3, 5) # Kết quả: 8
Ví dụ 4: Sử dụng return
def nhan(a, b)
return a * b
end
puts nhan(4, 6) # Kết quả: 24
5. Hàm có giá trị mặc định cho tham số
Nếu một tham số không được truyền vào, Ruby có thể sử dụng giá trị mặc định.
Ví dụ 5: Giá trị mặc định
def gioi_thieu(ten = "Bạn")
puts "Xin chào, #{ten}!"
end
gioi_thieu # Kết quả: "Xin chào, Bạn!"
gioi_thieu("Nam") # Kết quả: "Xin chào, Nam!"
6. Hàm nhận nhiều tham số không xác định (Splat Argument)
Bạn có thể sử dụng *
để truyền số lượng tham số không giới hạn.
Ví dụ 6: Nhận nhiều tham số
def tinh_tong(*so)
so.sum # Tính tổng các số truyền vào
end
puts tinh_tong(1, 2, 3) # Kết quả: 6
puts tinh_tong(4, 5, 6, 7, 8) # Kết quả: 30
7. Hàm dạng khối (Lambda & Proc)
Ngoài cách định nghĩa thông thường, Ruby còn có lambda và proc, giúp định nghĩa các hàm ngắn gọn hơn.
Ví dụ 7: Dùng lambda
cong = ->(a, b) { a + b }
puts cong.call(4, 5) # Kết quả: 9
Ví dụ 8: Dùng proc
tru = Proc.new { |a, b| a - b }
puts tru.call(10, 3) # Kết quả: 7
Tổng kết
- Dùng
def
để định nghĩa hàm. - Gọi hàm bằng cách sử dụng tên hàm (
ten_ham
). - Hàm có thể nhận tham số và có giá trị trả về.
- Có thể sử dụng giá trị mặc định cho tham số.
- Dùng
*
để nhận số lượng tham số không xác định. - Lambda và Proc là cách định nghĩa hàm ngắn gọn.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com