Swift không giống các ngôn ngữ như JavaScript, nơi bạn có thể gọi một hàm mà không cần chuyển các tham số và nó vẫn sẽ được gọi. Vì vậy, để gọi một hàm trong Swift, bạn cần gán một giá trị cho các tham số của nó.
Giá trị mặc định cho các tham số cho phép bạn gán một giá trị mà không cần chỉ định nó khi gọi hàm. Đó là lý do tại sao test()
hoạt động khi bạn chỉ định một giá trị mặc định trên khai báo của thử nghiệm.
Nếu bạn không bao gồm giá trị mặc định đó, bạn cần cung cấp giá trị trong cuộc gọi: test(nil)
.
Ngoài ra, và không liên quan trực tiếp đến câu hỏi này, nhưng có lẽ đáng lưu ý, bạn đang sử dụng cách "C ++" để xử lý các con trỏ có thể là null, để xử lý các tùy chọn nil có thể có trong Swift. Đoạn mã sau an toàn hơn (đặc biệt trong phần mềm đa luồng) và nó cho phép bạn tránh bị buộc phải mở gói tùy chọn:
func test(firstThing: Int? = nil) {
if let firstThing = firstThing {
print(firstThing)
}
print("done")
}
test()
func test(firstThing: Int = 4)
: mộtOptional
tham số không có giá trị mặc định. CácOptional
loại (đó là những gì?
trong một cái tên kiểu mở rộng tới) là một loại giá trị; "tham số tùy chọn" là một tên không may cho một tham số có thể có hoặc không có trong một lệnh gọi hàm, bất kể kiểu của nó.