Ruby là một ngôn ngữ lập trình hướng đối tượng và động, nổi tiếng với cú pháp sạch sẽ và dễ hiểu. Trong Ruby, các hàm thường được gọi là phương thức. Mỗi phương thức trong Ruby là một khối mã được đóng gói để thực hiện một nhiệm vụ cụ thể. Trong bài viết này, chúng ta sẽ khám phá chi tiết về cách định nghĩa và sử dụng hàm trong Ruby, cùng với các ví dụ thực tế để hiểu rõ hơn về cách thức hoạt động của chúng.
Định nghĩa Hàm
Trong Ruby, hàm được định nghĩa sử dụng từ khoá def
theo sau là tên của hàm và kết thúc bằng từ khoá end
. Cú pháp cơ bản để định nghĩa một hàm như sau:
ruby
def ten_ham
# Thân hàm
end
Ví dụ:
ruby
def hello
puts "Xin chào!"
end
Hàm này khi được gọi sẽ in ra màn hình dòng chữ "Xin chào!".
Gọi Hàm
Để gọi một hàm trong Ruby, bạn chỉ cần viết tên hàm đó. Nếu hàm không có tham số, bạn không cần phải sử dụng dấu ngoặc đơn.
Ví dụ:
ruby
hello
Tham số của Hàm
Hàm trong Ruby có thể nhận một hoặc nhiều tham số. Các tham số này được định nghĩa trong cặp ngoặc đơn ngay sau tên hàm.
Ví dụ:
ruby
def chao_ban(ten)
puts "Xin chào #{ten}!"
end
chao_ban("Alice")
Khi gọi hàm chao_ban
với tham số là "Alice", chương trình sẽ in ra "Xin chào Alice!".
Giá trị Trả về
Mặc định, Ruby sẽ trả về giá trị của biểu thức cuối cùng được thực thi trong hàm. Tuy nhiên, bạn có thể sử dụng từ khoá return
để trả về một giá trị cụ thể bất kỳ lúc nào trong hàm.
Ví dụ:
ruby
def tong(a, b)
return a + b
end
ket_qua = tong(5, 3)
puts ket_qua # In ra 8
Hàm với Tham số Mặc định
Bạn có thể định nghĩa tham số mặc định cho hàm, nghĩa là nếu khi gọi hàm không truyền tham số thì hàm sẽ sử dụng giá trị mặc định này.
Ví dụ:
ruby
def chao(ten = "Bạn")
puts "Xin chào #{ten}!"
end
chao("Alice") # In ra "Xin chào Alice!"
chao # In ra "Xin chào Bạn!"
Hàm với Số Lượng Tham số Không Xác định
Trong trường hợp bạn không chắc chắn số lượng tham số khi gọi hàm, Ruby cho phép bạn định nghĩa hàm với số lượng tham số không xác định bằng cách sử dụng dấu sao (*) trước tên tham số.
Ví dụ:
ruby
def danh_sach_tham_so(*args)
puts "Bạn đã truyền vào #{args.length} tham số"
end
danh_sach_tham_so(1, "hai", 3.0) # In ra "Bạn đã truyền vào 3 tham số"
Hàm Là Đối Tượng
Trong Ruby, hàm là một đối tượng. Điều này có nghĩa là bạn có thể gán hàm cho một biến, truyền nó như một tham số cho hàm khác, hoặc thậm chí là trả về nó từ một hàm khác.
Ví dụ:
ruby
def cong(a, b)
a + b
end
phep_cong = method(:cong)
puts phep_cong.call(5, 3) # In ra 8
Kết Luận
Hàm trong Ruby cung cấp một cách mạnh mẽ để đóng gói mã lệnh, giúp chương trình của bạn dễ đọc và bảo trì hơn. Với khả năng truyền tham số linh hoạt, định nghĩa giá trị trả về, và thậm chí là xử lý số lượng tham số không xác định, hàm trong Ruby thực sự là một công cụ lập trình vô cùng mạnh mẽ. Hy vọng qua bài viết này, bạn đã có thể nắm bắt được cách sử dụng hàm trong Ruby một cách hiệu quả.