Ну почему Swift :( [Swift прости :)]


#1

Не стреляйте себе в ногу как я D

protocol Fooo {
    func a(a: Int, b: Int)
    func b(a: Int, b: Int)
}

extension Fooo {
    func a(a: Int, b: Int = 10) {
        print("a from PROTOCOL")
    }
    func b(a: Int, b: Int) {
        print("b from PROTOCOL")
    }
}

class Foo: Fooo {
    func a(a: Int, b: Int = 120) {
        print("a from implementation")
    }
    
    func b(a: Int, b: Int) {
        print("b from implementation")
    }
}

let f: Fooo = Foo()
f.a(a: 10) //a from PROTOCOL
f.b(a: 12, b: 12) //b from implementation

#2

Swift прости :slight_smile:
это я наверно на ночь глядя глупости пишу, наверно логично если обращаемся через интерфейс протокола к ф-я м у которых в параметрах есть дефолтные значения, то он будет брать их из extension, хотя вроде не так и очевидно было

А вот еще и статейка подъехала


#3

Swift молод, может и не простить. Но мы понадеемся на хэппи энд)))


#4

Вот очень хорошая статейка))
Может кому-то будет интересно, правда на буссурманском)

https://www.rightpoint.com/rplabs/switch-method-dispatch-table