Sobes.tech
Junior

Hansı proqramlaşdırma prinsipi generiklərin istifadəsinə imkan verir?

sobes.tech Süni İntellekt

AI-dan cavab

Alt tiplərin alt növləri.

Swift-də generiklər parametrik çox biçimliliyi həyata keçirir, bu da kodu əvvəlcədən bilmədən müxtəlif tiplərlə işləməyə imkan verir, lakin bu tiplərin müəyyən məhdudiyyətlərə (məsələn, protokollara) uyğun olmasını tələb edir.

Generiklərin istifadəsinə nümunə:

// Eyni növ T qəbul edən və T protokola uyğun olmalı olan generik funksiya tərifi.
func areEqual<T: Equatable>(_ a: T, _ b: T) -> Bool {
    return a == b
}

// Int ilə generik funksiyanın istifadəsi
let intResult = areEqual(5, 5) // true

// String ilə generik funksiyanın istifadəsi
let stringResult = areEqual("hello", "world") // false

Generik-struktura nümunəsi (stack):

// Hər hansı bir tip T elementlərini saxlaya bilən "Stack" adlı generik strukturun tərifi.
struct Stack<T> {
    private var elements: [T] = []

    mutating func push(_ element: T) {
        elements.append(element)
    }

    mutating func pop() -> T? {
        return elements.popLast()
    }
}

// Int ilə generik strukturun istifadəsi
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
let poppedInt = intStack.pop() // 2

// String ilə generik strukturun istifadəsi
var stringStack = Stack<String>()
stringStack.push("A")
stringStack.push("B")
let poppedString = stringStack.pop() // "B"

Generiklərin istifadəsinin üstünlükləri:

  • Tip təhlükəsizliyi: Kompilyator, tipleri tərtib zamanı yoxlayır, bu da işləmə zamanı səhvlərin ehtimalını azaldır.
  • Kodun təkrar istifadəsi: Eyni kod müxtəlif tiplərlə işləyə bilər.
  • Performans: Tip çevirmələrinə ehtiyac yoxdur.
  • Abstraksiya: Xüsusi məlumat tiplərindən soyutlamağa imkan verir.