Giá trị trả về
Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 50 trên 88.
Đến giờ, các phương thức của chúng ta đã thực hiện những hành động như in ra đầu ra. Nhưng phương thức thực sự trở nên mạnh mẽ khi có thể gửi dữ liệu trở lại đoạn code đã gọi chúng. Giá trị trả về giúp làm điều đó.
Trong Ruby, một phương thức tự động trả về giá trị của biểu thức cuối cùng:
def add(a, b)
a + b
end
result = add(5, 3)
puts result # In ra: 8Lưu ý rằng không có puts bên trong phương thức. Thay vào đó, phương thức tính a + b và trả về giá trị đó. Sau đó, bạn có thể lưu giá trị này vào một biến hoặc dùng trực tiếp.
Bạn cũng có thể dùng từ khóa return một cách tường minh:
def multiply(a, b)
return a * b
end
puts multiply(4, 5) # Đầu ra: 20Từ khóa return thoát khỏi phương thức ngay lập tức và gửi lại giá trị được chỉ định. Cách này hữu ích khi bạn muốn thoát sớm dựa trên một điều kiện. Cả hai cách đều hoạt động, nhưng lập trình viên Ruby thường dùng giá trị trả về ngầm định để code gọn gàng hơn.
Giá trị trả về giúp bạn kết hợp các thao tác và xây dựng logic phức tạp từ những phương thức đơn giản:
def double(n)
n * 2
end
puts double(double(3)) # Đầu ra: 12Thử thách
DễĐịnh nghĩa một phương thức có tên square, nhận một tham số n và trả về bình phương của số đó (số đó nhân với chính nó).
Đọc hai số nguyên từ đầu vào. Dùng phương thức square để tính bình phương của mỗi số, sau đó in ra tổng của hai bình phương.
Ví dụ, nếu đầu vào là 3 và 4:
- Bình phương của 3 là 9
- Bình phương của 4 là 16
- Tổng là 25
Đầu ra sẽ là:
25Nếu đầu vào là 5 và 2, đầu ra sẽ là:
29Tự làm thử
# Đọc hai số nguyên từ đầu vào
num1 = gets.chomp.to_i
num2 = gets.chomp.to_i
# TODO: Định nghĩa phương thức square bên dưới
# TODO: Dùng phương thức square để tính tổng bình phương rồi in kết quảBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
4Toán tử phần 2
Toán tử logic phần 1Toán tử logic phần 2Ôn tập: logic đơn giảnToán tử logic phần 3Toán tử logic phần 42Biến và kiểu dữ liệu
Số và biếnKiểu dữ liệu chuỗiKiểu dữ liệu BooleanKiểu dữ liệu SymbolKiểm tra kiểu dữ liệuQuy ước đặt tênÔn tập: tạo biến8Vòng lặp
Vòng lặp for với khoảng giá trịVòng lặp whileThoátTiếp tụcÔn tập: giai thừaVòng lặp timesVòng lặp untilVòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcToán tử moduloPhép tính số học rút gọnÔn tập: Toán cơ bảnToán tử so sánh6Nhập xuất cơ bản
In ra bằng putsIn ra bằng print và pIn ra bằng biếnNhập dữ liệu bằng getsPhương thức chompChuyển đổi kiểu dữ liệuÔn tập: Tính tuổiÔn tập: Đúng hay sai9Phương thức
Định nghĩa phương thứcTham số phương thứcGiá trị trả vềÔn tập: phương thức SigmaÔn tập: phương thức xác thựcGiá trị tham số mặc định15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát chương trìnhTự luyện tập: Trình biên dịch Ruby online