Generik dengan cepat

Mar 09 2023
Generik memungkinkan Anda menulis kode yang fleksibel dan dapat digunakan kembali yang dapat bekerja dengan berbagai jenis. Dengan menggunakan generik, Anda dapat menentukan fungsi, kelas, dan struktur yang dapat bekerja dengan tipe apa pun, bukan hanya satu tipe tertentu.

Generik memungkinkan Anda menulis kode yang fleksibel dan dapat digunakan kembali yang dapat bekerja dengan berbagai jenis. Dengan menggunakan generik, Anda dapat menentukan fungsi, kelas, dan struktur yang dapat bekerja dengan tipe apa pun, bukan hanya satu tipe tertentu.

Berikut adalah contoh fungsi generik yang mengambil array dari jenis apa pun dan mengembalikan elemen pertama dari array tersebut:

func firstElement<T>(of array: [T]) -> T? {
    array.first
}

Anda kemudian dapat memanggil fungsi ini dengan semua jenis array:

let strings = ["apple", "banana", "orange"]
let firstString = firstElement(of: strings) // "apple"

let numbers = [1, 2, 3]
let firstNumber = firstElement(of: numbers) // 1

struct Stack<T> {
    private var elements = [T]()

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

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

var stringStack = Stack<String>()
stringStack.push("apple")
stringStack.push("banana")
let poppedString = stringStack.pop() // "banana"

var numberStack = Stack<Int>()
numberStack.push(1)
numberStack.push(2)
let poppedNumber = numberStack.pop() // 2