Giá trị trả về

Khái niệm

Giá trị trả về là kết quả mà hàm gửi lại cho nơi gọi sau khi hoàn thành công việc. Nhờ cơ chế này, hàm không chỉ thực hiện hành động mà còn có thể tham gia trực tiếp vào các biểu thức và phép gán.

Ví dụ đổi nhiệt độ

def celsius_to_fahrenheit(celsius):
		return celsius * 9 / 5 + 32


result = celsius_to_fahrenheit(25)
print(result)
program ReturnValueDemo;

function CelsiusToFahrenheit(celsius: Real): Real;
begin
	CelsiusToFahrenheit := celsius * 9 / 5 + 32;
end;

begin
	Writeln(CelsiusToFahrenheit(25):0:2);
end.
#include <stdio.h>

double celsius_to_fahrenheit(double celsius) {
		return celsius * 9 / 5 + 32;
}

int main(void) {
		printf("%.2f\n", celsius_to_fahrenheit(25));
		return 0;
}
#include <iostream>
using namespace std;

double celsius_to_fahrenheit(double celsius) {
    return celsius * 9.0 / 5 + 32;
}

int main() {
    cout << celsius_to_fahrenheit(25) << endl;
    return 0;
}
static double CelsiusToFahrenheit(double celsius) {
    return celsius * 9.0 / 5 + 32;
}

Console.WriteLine(CelsiusToFahrenheit(25));
function celsiusToFahrenheit(celsius) {
    return celsius * 9 / 5 + 32;
}

console.log(celsiusToFahrenheit(25));
function celsiusToFahrenheit(celsius: number): number {
    return celsius * 9 / 5 + 32;
}

console.log(celsiusToFahrenheit(25));
package main

import "fmt"

func celsiusToFahrenheit(celsius float64) float64 {
    return celsius*9/5 + 32
}

func main() {
    fmt.Printf("%.2f\n", celsiusToFahrenheit(25))
}
fn celsius_to_fahrenheit(celsius: f64) -> f64 {
    celsius * 9.0 / 5.0 + 32.0
}

fn main() {
    println!("{:.2}", celsius_to_fahrenheit(25.0));
}

Thiết kế giá trị trả về

  • Giúp hàm rõ trách nhiệm hơn: nhận dữ liệu, xử lý, trả kết quả.

Ghi chú theo ngôn ngữ

Thông tin</div>

Python dùng từ khóa return. Nếu không có return tường minh, hàm tự động trả về None.

Trong Pascal cổ điển, kết quả thường được gán vào chính tên hàm. Nhiều trình biên dịch hiện đại còn hỗ trợ biến Result, nhưng dạng gán vào tên hàm vẫn rất phổ biến trong tài liệu cơ bản.

C yêu cầu kiểu trả về được khai báo trước tên hàm. Nếu một hàm không trả kết quả, kiểu trả về thường là void.

C++ kế thừa cơ chế trả về của C. Ngoài ra, C++ hiện đại hỗ trợ trả về nhiều giá trị qua std::tuple hoặc structured bindings (C++17).

C# hỗ trợ tuple (T1, T2) để trả nhiều giá trị cùng một lúc. Task<T> là kiểu trả về phổ biến khi làm việc với hàm bất đồng bộ.

JavaScript tự động trả undefined nếu không có lệnh return tường minh. Hàm bất đồng bộ trả về một Promise.

TypeScript yêu cầu khai báo kiểu trả về tường minh khi không thể suy luận được. Kiểu void dùng cho hàm không trả giá trị.

Go hỗ trợ trả nhiều giá trị cùng lúc. Thuật ngữ phổ biến là trả kết quả kèm lỗi: return result, nil hoặc return zero, err.

Rust dùng Result<T, E> để biểu diễn kết quả có thể thành công hoặc thất bại. Biểu thức cuối không có dấu ; là giá trị trả về ngầm định.

Kết luận

Giá trị trả về làm cho hàm trở thành một khối xử lý hoàn chỉnh. Khi chương trình có nhiều biến cùng tên ở các vị trí khác nhau, cần hiểu tiếp về Phạm vi biến.

Bình luận