Hàm chỉ gồm một biểu thức
Thuộc phần Kiến thức nền tảng trong hành trình Kotlin của Coddy. Bài học 60 trên 93.
Khi một hàm chỉ chứa một biểu thức, Kotlin cung cấp cú pháp ngắn gọn hơn. Thay vì dùng dấu ngoặc nhọn và từ khóa return, bạn có thể dùng dấu bằng, theo sau trực tiếp là biểu thức.
Đây là hàm thông thường so với hàm tương đương chỉ có một biểu thức:
// Hàm thông thường
fun double(n: Int): Int {
return n * 2
}
// Hàm có một biểu thức
fun double(n: Int): Int = n * 2Cả hai phiên bản hoạt động giống hệt nhau, nhưng phiên bản thứ hai ngắn hơn và dễ đọc hơn khi thực hiện các thao tác đơn giản.
Kotlin thậm chí có thể tự suy luận kiểu giá trị trả về cho các hàm có một biểu thức, giúp bạn bỏ qua kiểu đó hoàn toàn:
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"Cú pháp này cũng hoạt động rất tốt với các biểu thức điều kiện:
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0Các hàm có một biểu thức rất phù hợp cho những phép tính, thao tác xác thực và chuyển đổi đơn giản. Chúng giúp đoạn code gọn gàng và tập trung vào việc hàm thực hiện, thay vì cách trả về một giá trị.
Thử thách
Trung bìnhViết hàm calculateDiscount nhận price và percentage, rồi trả về giá đã giảm.
Dùng cú pháp hàm một biểu thức (dùng = thay cho dấu ngoặc nhọn và return) để tính giá cuối cùng sau khi áp dụng mức giảm giá.
Giá đã giảm được tính như sau: price - (price * percentage / 100)
Tham số:
price(Double): Giá ban đầupercentage(Int): Tỷ lệ giảm giá (0-100)
Giá trị trả về: Giá sau khi áp dụng mức giảm giá (Double)
Tự làm thử
fun calculateDiscount(price: Double, percentage: Int): Double {
// Viết code ở đây
}
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 1
Toán tử số họcToán tử moduloPhép gán kết hợpToán tử so sánhÔn tập: phép tính đơn giản7Nhập xuất cơ bản
Hàm PrintlnMẫu chuỗiĐầu vào ReadLineChuyển đổi kiểu dữ liệuÔn tập: Số năm đến khi nghỉ hưuÔn tập: Đúng hay sai10Hàm
Khai báo hàmTham số và đối sốGiá trị trả vềĐối số có tênGiá trị mặc địnhHàm chỉ gồm một biểu thứcÔn tập: hàm SigmaÔn tập: hàm kiểm tra hợp lệ3Tính có thể null
An toàn với null là gìKiểu có thể nullToán tử gọi an toànToán tử ElvisCơ bản về thử thách hàmKhẳng định không nullÔn tập: truy cập an toàn6Ra quyết định
Câu lệnh ifCâu lệnh if-elseIf dưới dạng biểu thứcBiểu thức whenWhen với khoảng giá trịÔn tập: máy tính đơn giản9Vòng lặp
Vòng lặp forVòng lặp whileVòng lặp do-whileBreakContinuePhạm vi trong vòng lặpVòng lặp lồng nhauÔn tập: giai thừaÔn tập: đầu vào động12Cơ bản về danh sách
List và MutableListTruy cập phần tửChỉnh sửa danh sáchPhương thức của ListPair và TripleÔn tập: danh sách sản phẩmÔn tập: danh sách đảo ngược15Theo dõi chi tiêu hằng ngày
Tổng quan dự ánThoát khỏi chương trìnhTự luyện tập: Playground Kotlin