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)