×

Trả về giá trị từ phương thức với return trong Ruby

Trong Ruby, việc trả về giá trị từ một phương thức được thực hiện bằng từ khóa return. Từ khóa này khá đơn giản, nhưng để hiểu rõ cách hoạt động của nó, ta cần tìm hiểu một số khía cạnh cụ thể.

Khái niệm cơ bản

Phương thức trong Ruby được định nghĩa bằng cách sử dụng từ khóa def theo sau bởi tên phương thức và danh sách các tham số (nếu có). Cấu trúc cơ bản của một phương thức trong Ruby như sau:

def ten_phuong_thuc(tham_so1, tham_so2)
  # Các câu lệnh
end

Khi muốn trả về một giá trị từ một phương thức, bạn có thể sử dụng từ khóa return. Ví dụ:

def cong_hai_so(a, b)
  return a + b
end

puts cong_hai_so(5, 3) # => 8

Từ khóa return là tuỳ chọn

Một điều quan trọng cần lưu ý là trong Ruby, từ khóa return là tuỳ chọn. Nếu không có từ khóa return, phương thức sẽ tự động trả về giá trị của câu lệnh cuối cùng được thực thi. Ví dụ:

def tru_hai_so(a, b)
  a - b
end

puts tru_hai_so(10, 4) # => 6

Trong đoạn mã trên, phương thức tru_hai_so vẫn trả về kết quả đúng mà không cần dùng từ khóa return.

Trả về sớm trong phương thức

Đôi khi, bạn có thể muốn phương thức trả về một giá trị từ sớm mà không cần thực hiện các câu lệnh phía sau. Trong trường hợp này, bạn sẽ sử dụng từ khóa return để kết thúc phương thức ngay lập tức:

def kiem_tra_chan_le(num)
  return 'Số chẵn' if num.even?
  'Số lẻ'
end

puts kiem_tra_chan_le(4) # => 'Số chẵn'
puts kiem_tra_chan_le(7) # => 'Số lẻ'

Trả về nhiều giá trị

Ruby cũng cho phép trả về nhiều giá trị từ một phương thức bằng cách sử dụng dấu phẩy để tách các giá trị. Các giá trị này sẽ được trả về dưới dạng một mảng:

def chia_so(a, b)
  du = a % b
  thuong = a / b
  return thuong, du
end

thuong, du = chia_so(10, 3)
puts "Thương: #{thuong}, Dư: #{du}" # => Thương: 3, Dư: 1

Kết luận

Hiểu rõ cách sử dụng từ khóa return trong Ruby giúp bạn viết mã nguồn rõ ràng và hiệu quả hơn. Trong nhiều trường hợp, không cần phải sử dụng từ khóa này mà vẫn đạt được kết quả như mong muốn. Tuy nhiên, khi cần trả về giá trị từ sớm hoặc trả về nhiều giá trị, từ khóa này trở nên rất hữu ích.

Comments