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.