Hàm
fn gcd(a: u32, b: u32) -> u32 { if b > 0 { gcd(b, a % b) } else { a } } fn main() { println!("gcd: {}", gcd(143, 52)); }
This slide should take about 3 minutes.
- Những tham số phải được chú thích sau bằng một kiểu dữ liệu (ngược lại với một số ngôn ngữ lập trình khác), rồi một giá trị trả về.
- Biểu thức cuối cùng trong hàm (hay một khối) sẽ trở thành giá trị tả về. Đơn giản bằng cách bỏ qua dấu
;
ở cuối biểu thức. Từ khóareturn
có thể sử dụng để trả về sớm, nhưng “giá trị trần (bare value)” là triết lí ngôn ngữ (idiomatic) khi đặt ở cuối hàm (tái cấu trúcgcd
dể sử dụngreturn
). - Một số hàm sẽ không có giá trị trở về, sẽ trả về ‘kiểu dữ liệu’,
()
. Trình biên dịch sẽ kết luận rằng kiểu dữ liệu sẽ là-> ()
nếu kiểu dữ liệu trả về được bỏ qua. - Overloading (nạp chồng) không được hỗ trợ – mỗi hàm chỉ có duy nhất một triển khai.
- Luôn luôn lấy một số những tham số nhất định. Đối số mặc định không đưọc hỗ trợ. Macros có thể sử dụng cho hỗ trợ hàm đa tham số.
- Luôn luôn chỉ lấy một nhóm kiểu tham số dữ liệu. Những kiểu dữ liệu này có thể là generic (tổng quát), và sẽ được đề cập tới ở phần sau.