Sobes.tech
Junior — Middle

Jakie działania są dostępne przy rozszerzaniu protokołu za pomocą rozszerzeń?

sobes.tech AI

Odpowiedź od AI

W Swift rozszerzenia (extensions) pozwalają na dodawanie nowych możliwości do istniejących typów, w tym protokołów. Rozszerzając protokół za pomocą extension, można:

  • Dodawać domyślne implementacje metod i właściwości, co pozwala uniknąć konieczności implementowania tych metod w każdym typie, który dziedziczy po protokole.
  • Dodawać właściwości obliczeniowe.
  • Dodawać nowe metody, które będą dostępne dla wszystkich typów spełniających protokół.

Jednak rozszerzenia protokołów nie pozwalają na dodawanie nowych wymagań (np. nowych obowiązkowych metod lub właściwości), tylko domyślne implementacje.

Przykład:

protocol Greetable {
    func greet()
}

extension Greetable {
    func greet() {
        print("Cześć z rozszerzenia protokołu!")
    }
}

struct Person: Greetable {}

let p = Person()
p.greet() // Wypisze: Cześć z rozszerzenia protokołu!