Sobes.tech
Junior — Middle

Kas on võimalik määratleda funktsioon protokolli määratluse sees?

sobes.tech AI

Vastus AI-lt

In Swift, within the definition of a protocol, it is not possible to implement functions — protocols only describe the requirements for methods, properties, and other members that must be implemented in classes, structures, or enumerations conforming to the protocol.

That is, in a protocol, you can declare the signature of a function, but not its body:

protocol MyProtocol {
    func doSomething()
}

The implementation of the doSomething() function must be provided in the type that inherits this protocol.

However, with the advent of protocol extensions, you can add a default implementation of methods, which will be available to all types conforming to the protocol:

extension MyProtocol {
    func doSomething() {
        print("Default implementation")
    }
}

Thus, directly inside the protocol, a function cannot be defined, but an implementation can be added in the protocol extension.