Extension dalam Swift

Dalam artikel kali ini, Kamu akan belajar bagaimana menjaga kode Kamu termodulasi menggunakan extension. Masalah yang ditemukan saat kode kita semakin besar adalah “Bagaimana menjaganya tetap ringkas dan termodulasi?” atau “bagaimana kita menghindari kode yang masif/berulang-ulang?”.
Mari kita mulai. Silahkan buka playground Kamu, kita belajar bersama.
Buat Struct
Pertama-tama, buatlah sebuah struct Budi. Di dalamnya memiliki property name dan skill.
struct Budi {
var name = "Budi"
var skill = "Swift"
init() {}
}Extend Struct
Kamu akan meng-Extend struct Budi dan menambahkan beberapa fitur.
extension Budi {
var description: String {
let myName = self.name
let mySkill = self.skill // object.name
return "I'm \(myName), I know \(mySkill)"
}
init(enterSkill: String) {
self.skill = enterSkill
print("You've entered a new skill")
}
subscript(mySkill: String) -> String {
return "This is my secret skill: \(mySkill)"
}
}Implementasi
Buat objek budi
let budi = Budi() budi.description // I'm Budi, I know Swift" budi["Dance"] // This is my secret skill: Dance
Kamu juga bisa menggunakan init(enterSkill: String) dari blok Extension tadi.
let newBudi = Budi(enterSkill: "Crafting") newBudi.description // I'm Budi, I know Crafting"
Extend tipe-tipe Swift Native
Kita akan meng-Extend Int, Kamu dapat menambahkan properti sesuai kebutuhan.
extension Int {
var squared: Int {
return self * self
}
}Nah sekarang tipe Int memiliki properti squared.
let myNumber = 10 // self is 10 myNumber.squared // 100
Rule: Kamu tidak bisa menyimpan properti di dalam
Extension
Oke sekian seputar Extension dalam Swift.
Semoga bermanfaat.
