Subscripts dalam Swift
Pernahkan Kamu berfikir untuk membuat shortcut untuk memanggil sebuah fungsi? Jika pernah maka teknik itu disebut Subscripts
dalam swift.
Silahkan buka playground kamu dan mulai koding.
Normal Method
Buatlah sebuah class HelloKitty
yang memiliki fungsi yang mengembalikan nilai string.
struct HelloKitty { func saySomething() -> String { return "I'm Cute" } }
Buat sebuah instance dan panggil saySomething()
let babe = HelloKitty() babe.saySomething() // "I'm Cute"
Subscripts
Subscripts
adalah analogi dengan method/fungsi. Namun, tidak memiliki nama. Sebagai gantinya Kamu menambahkan kata kunci, subscript
.
struct WeekDays { var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"] subscript(index: Int) -> String { return days[index] } }
Panggil subscript dengan menambahkan []
di akhir instance.
let myDays = WeekDays() myDays[0] // "Monday" myDays[1] // "Tuesday"
Dictionary
Ketika Kamu mengakses elemen di dalam dictionary, itu selalu mengembalikan tipe optional
.
var info = ["Height": 183, "Body Fat": 12.5, "Weight": 76] let height = info["Height"] // height is an optional string
Oke sekarang mari kita mengakses elemen tanpa mengembalikan tipe optional menggunakan subscripts
.
struct HealthInfo { var info = ["Height": 183, "Body Fat": 12.5, "Weight": 76] subscript(key: String) -> Double { if let newInfo = info[key] { return newInfo } else { return 0 } } }
Penting: Kamu juga bisa menggunakan guard.
Akses Element
Mengembalikan non-optional menggunakan fungsi subscript.
let fadielse = HealthInfo() fadielse["Height"] // 183 fadielse["Body Fat"] // 12.5 fadielse["123456789"] // 0
Penggunaan subscript dalam prakteknya biasanya:
- Mendapatkan jumlah rows dalam tableView/collectionView
- Semua yang berhubungan dengan pairing dan jenis-jenis tipe collection
Semoga bermanfaat.