Sobes.tech
Junior — Middle

Cum se pot restricționa tipurile permise de parametri în generice în interiorul unei metode?

sobes.tech AI

Răspuns de la AI

În Swift, pentru a restricționa tipurile permise ale parametrilor în genericele din interiorul unei metode, se utilizează sintaxa de restricție prin protocoale sau clase, folosind cuvântul cheie where sau indicând moștenirea.

Exemplu de restricție a tipului de parametru care trebuie să respecte protocolul Equatable:

func findIndex<T: Equatable>(of valueToFind: T, in array: [T]) -> Int? {
    for (index, value) in array.enumerated() {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

Dacă este nevoie de o restricție mai complexă, se poate folosi where:

func compareItems<T, U>(item1: T, item2: U) where T: Comparable, T == U {
    if item1 < item2 {
        print("item1 este mai mic decât item2")
    }
}

Astfel, restricțiile permit compilatorului să verifice dacă tipurile parametrilor respectă cerințele specificate, ceea ce crește siguranța și previzibilitatea codului.