Giá trị mặc định
Thuộc phần Kiến thức nền tảng trong hành trình Swift của Coddy. Bài học 57 trên 86.
Đôi khi, một tham số có giá trị được dùng trong hầu hết mọi trường hợp. Thay vì yêu cầu bên gọi cung cấp giá trị đó mỗi lần, bạn có thể gán một giá trị mặc định cho tham số đó.
Để đặt giá trị mặc định, hãy dùng toán tử gán (=) sau kiểu dữ liệu của tham số:
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Đầu ra: Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Đầu ra: Hi, Bob!Khi gọi hàm, bạn có thể bỏ qua các tham số có giá trị mặc định. Swift sẽ tự động dùng giá trị mặc định. Nhưng nếu cần một giá trị khác, bạn vẫn có thể chỉ định rõ giá trị đó.
Các tham số có giá trị mặc định nên được đặt ở cuối danh sách tham số. Cách này giúp lời gọi hàm gọn gàng và dễ đọc:
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Đầu ra: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Đầu ra: 120.0Giá trị mặc định giúp hàm (function) linh hoạt hơn. Chúng hoạt động đơn giản trong các trường hợp phổ biến, đồng thời vẫn cho phép tùy chỉnh khi cần.
Thử thách
DễViết một hàm formatGreeting nhận name, greeting và repeatCount, rồi trả về lời chào đã định dạng.
Hàm sử dụng giá trị mặc định cho các tham số tùy chọn:
greetingmặc định là"Hello"repeatCountmặc định là1
Tạo một chuỗi lặp lại mẫu lời chào theo số lần đã chỉ định, phân tách bằng dấu cách.
Tham số:
name(String): Tên người đó (bắt buộc)greeting(String): Từ dùng để chào (mặc định:"Hello")repeatCount(Int): Số lần lặp lại lời chào (mặc định:1)
Giá trị trả về: Một chuỗi có mẫu lời chào được lặp lại. Định dạng: "[greeting], [name]!" được lặp lại repeatCount lần, phân tách bằng một dấu cách (String)
Ví dụ, nếu name là "Alice", greeting là "Hi" và repeatCount là 2, hàm trả về "Hi, Alice! Hi, Alice!".
Nếu chỉ gọi hàm với name là "Bob" (dùng các giá trị mặc định), hàm trả về "Hello, Bob!".
Tự làm thử
func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
// 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
4Các toán tử, phần 1
Toán tử số họcToán tử moduloPhép gán kết hợpÔn tập: phép tính đơn giảnToán tử so sánh7Nhập xuất cơ bản
Hàm in raNội suy chuỗiĐầu vào từ dòngChuyển đổi kiểu dữ liệuÔn tập đến 120Ôn tập đúng hay sai3Giá trị tùy chọn
Giá trị tùy chọn là gìMở gói bằng if letGuard letToán tử gộp nilÔn tập: mở gói an toàn6Ra quyết định
Câu lệnh ifIf và elseÔn tập: máy tính đơn giảnCâu lệnh switchSwitch với khoảng giá trị9Vòng lặp
Vòng lặp for-inVòng lặp whileVòng lặp repeat-whileBreakContinueÔn tập: giai thừaDải giá trị trong vòng lặpVòng lặp lồng nhauÔn tập: đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: Danh sách sản phẩmÔn tập: Mảng đảo ngượcTuple15Trình theo dõi chi tiêu hằng ngày
Tổng quan về dự ánThoát chương trìnhTự luyện tập: Playground Swift