Swift - це не такі мови, як JavaScript, де ви можете викликати функцію, не передаючи параметри, і вона все одно буде викликатися. Отже, щоб викликати функцію в Swift, потрібно призначити значення її параметрам.
Значення за замовчуванням для параметрів дозволяють призначити значення, не вказуючи його під час виклику функції. Ось чому test()
працює, коли ви визначаєте значення за замовчуванням у декларації тесту.
Якщо ви не включають значення за замовчуванням, ви повинні надати значення на виклик: test(nil)
.
Крім того, і безпосередньо не пов'язане з цим питанням, але, мабуть, варто зазначити, ви використовуєте спосіб "C ++" для вирішення можливих нульових покажчиків для розгляду можливих варіантів нуля в Swift. Наступний код є більш безпечним (особливо в багатопотоковому програмному забезпеченні), і він дозволяє уникнути примусового розгортання необов'язкового:
func test(firstThing: Int? = nil) {
if let firstThing = firstThing {
print(firstThing)
}
print("done")
}
test()
func test(firstThing: Int = 4)
: неOptional
параметр зі значенням за замовчуванням.Optional
Тип (який є те , що?
в імені типу розширюється в) являє собою тип значення; "необов'язковий параметр" - невдале ім'я параметра, який може бути або не може бути присутнім у виклику функції, незалежно від його типу.