Я понимаю, что аргумент по умолчанию не разрешен в протоколе, а это означает, что следующее недопустимо:
protocol testProtocol {
func testFunc (_ a: String, _ b: String? = nil)
}
Так что я понимаю, что b все еще может быть необязательным с помощью следующего объявления
protocol testProtocol {
func testFunc (_ a: String, _ b: String?)
}
и мой класс может соответствовать этому протоколу:
class TestIt: testProtocol {
func testFunc(_ a: String, _ b: String?) {
print ("Do stuff with a and b")
}
}
Однако я хотел бы вызвать эту функцию со следующим объявлением:
let test = TestIt()
test.testFunc("a")
Неизбежно, что это не компилируетсяи решение кажется
let test = TestIt()
test.testFunc("a", nil)
Однако передача nil в функцию не кажется очень быстрым способом выполнения действий.
Обратите внимание, что это минимальный пример, это не производствоготов и просто определить решение общей проблемы передачи nil в протоколе.
Могу ли я вызвать testFunc без использования nil?