Section 6/81 menit

6. Kapan Tidak Digunakan

6. Kapan Tidak Digunakan

Hindari Pack Iteration ketika:

1. Semua elemen punya tipe yang sama — gunakan Array

swift
// JANGAN: overkill untuk homogenous collection
func sumAll<each T: Numeric>(_ values: repeat each T) { }  // overcomplicated

// GUNAKAN: Array lebih sederhana dan jelas
func sumAll(_ values: [Int]) -> Int { values.reduce(0, +) }

2. Jumlah argumen selalu fixed

swift
// JANGAN: gunakan pack jika selalu 2 argumen
func combine<each A, each B>(_ a: repeat each A, _ b: repeat each B) { }  // overkill

// GUNAKAN: generic biasa
func combine<A, B>(_ a: A, _ b: B) -> (A, B) { (a, b) }

3. Kamu belum familiar dengan generic programming

swift
// Pack iteration punya learning curve tinggi
// Jika bisa solve dengan overloading atau Array, lakukan itu dulu
// Gunakan pack ketika manfaatnya jelas melebihi kompleksitasnya

4. Operasi yang butuh runtime flexibility

swift
// Pack di-resolve compile-time — jika kamu butuh menambah/hapus elemen saat runtime,
// gunakan Array atau Collection
var dynamicItems: [any Processable] = []  // runtime flexibility
dynamicItems.append(contentsOf: newItems)