Extension جزوه مباحثی هست که یادگیری آن اجباری نیست، اما همه پس از یادگیری آن عاشق آن میشوند! پس حتما این مقاله را با دقت بخوانید که یادگیری Extension برنامه نویسی را برای شما آسان تر خواهد کرد.
اکستنشن در واقع به معنای گسترش دادن و اضافه کردن یک سری قابلیت ها و ویژگی ها هست، یعنی مثلا به کلاس مربوط به String ها تابعی اضافه کنیم که امکان محاسبه تعداد حرف های یک کلمه را داشته باشد (البته این بصورت پیش فرض وجود دارد)، یک extension را میتوان به موارد زیر اضافه کرد:
برای این کار از کلمه کلیدی extension
استفاده میکنیم و سپس آن کلاس یا استراکچر یا ... که میخواهیم به آن ویژگی یا عملکردی جدید اضافه کنیم را مینویسیم، در دو مثال بعدی میخواهیم دو اکستنشن برای اعداد صحیح و رشته ها بنویسیم.
در این مثال میخواهیم اکستنشنی بنویسیم که عدد را ضرب در 2 کند و آن را برگرداند
extension Int {
func double() -> Int {
return self * 2
}
}
let number: Int = 5
let doubleNumber = number.double()
print(doubleNumber)
خروجی:
10
self
به متغیر مربوط به Int
اشاره میکند، پس در واقع هر سری که از اکستنشن double استفاده میکنیم، عدد مورد نظر در self
قرار میگیرد و بعد از ضرب شدن در دو برگردانده میشود.در مثال دوم میخواهیم اکستنشی برای رشته ها بنویسیم که تعداد حرف های یک رشته را همراه با یک متن چاپ کند.
extension String {
func stringCounter() {
let lettersCount = self.count
print("number of letter is: \(lettersCount)")
}
}
let str: String = "Swift"
str.stringCounter()
خروجی:
number of letter is: 5
extension Double {
var castToInt: Int {
return Int(self)
}
}
let doubleNumber: Double = 92.48
let intNumber = doubleNumber.castToInt
print(intNumber)
خروجی:
92