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.

0 0 votes
Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

0
Would love your thoughts, please comment.x
()
x