Swift - Yöntemler
Swift 4'te dil Belirli türlerle ilişkili İşlevler, Yöntemler olarak adlandırılır. Amaç C Sınıflarında yöntemleri tanımlamak için kullanılırken, Swift 4 dili kullanıcıya Sınıflar, Yapılar ve Numaralandırmalar için yöntemlere sahip olma esnekliği sağlar.
Örnek Yöntemleri
Swift 4 dilinde, Sınıflar, Yapılar ve Numaralandırma örneklerine örnek yöntemlerle erişilir.
Örnek yöntemleri işlevsellik sağlar
- Örnek özelliklerine erişmek ve bunları değiştirmek için
- örneğin ihtiyacıyla ilgili işlevsellik
Örnek yöntemi, {} süslü parantezlerin içine yazılabilir. Tür örneğinin yöntemlerine ve özelliklerine örtük erişimi vardır. Türün belirli bir örneği çağrıldığında, o belirli örneğe erişecektir.
Sözdizimi
func funcname(Parameters) -> returntype {
Statement1
Statement2
---
Statement N
return parameters
}
Misal
class calculations {
let a: Int
let b: Int
let res: Int
init(a: Int, b: Int) {
self.a = a
self.b = b
res = a + b
}
func tot(c: Int) -> Int {
return res - c
}
func result() {
print("Result is: \(tot(c: 20))")
print("Result is: \(tot(c: 50))")
}
}
let pri = calculations(a: 600, b: 300)
pri.result()
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
Result is: 880
Result is: 850
Sınıf Hesaplamaları iki örnek yöntemi tanımlar -
- init (), a ve b olmak üzere iki sayıyı toplamak ve bunu 'res' sonucunda saklamak için tanımlanmıştır
- tot (), 'res'i' c 'değerini geçirmekten çıkarmak için kullanılır
Son olarak, hesaplama yöntemlerini a ve b değerleri ile yazdırmak için çağrılır. Örnek yöntemlerine "." İle erişilir. nokta sözdizimi
Yerel ve Harici Parametre Adları
Swift 4 İşlevleri, değişkenleri için hem yerel hem de genel bildirimleri açıklar. Benzer şekilde, Swift 4 Yöntemleri adlandırma kuralları da Hedef C'ye benzer. Ancak yerel ve genel parametre adı bildirimlerinin özellikleri, işlevler ve yöntemler için farklıdır. Swift 4'teki ilk parametre, erişimi kolay adlandırma kuralları için 'with', 'for' ve 'by' olarak edat adlarıyla anılır.
Swift 4, ilk parametre adını yerel parametre adları olarak ve kalan parametre adlarını da genel parametre adları olarak bildirerek yöntemlerde esneklik sağlar. Burada 'no1', Swift 4 yöntemleri tarafından yerel parametre adları olarak bildirilmiştir. "no2", genel bildirimler için kullanılır ve program üzerinden erişilir.
class division {
var count: Int = 0
func incrementBy(no1: Int, no2: Int) {
count = no1 / no2
print(count)
}
}
let counter = division()
counter.incrementBy(no1: 1800, no2: 3)
counter.incrementBy(no1: 1600, no2: 5)
counter.incrementBy(no1: 11000, no2: 3)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
600
320
3666
# Ve _ Sembollü Harici Parametre Adı
Swift 4 yöntemleri yerel bildirimler için ilk parametre adlarını sağlasa da, kullanıcının parametre adlarını yerelden genel bildirimlere değiştirme hükmü vardır. Bu, '#' sembolünün önüne ilk parametre adı eklenerek yapılabilir. Bunu yaparak, ilk parametreye modüller boyunca global olarak erişilebilir.
Kullanıcının harici bir adla sonraki parametre adlarına erişmesi gerektiğinde, yöntem adı '_' sembolü yardımıyla geçersiz kılınır.
class multiplication {
var count: Int = 0
func incrementBy(no1: Int, no2: Int) {
count = no1 * no2
print(count)
}
}
let counter = multiplication()
counter.incrementBy(no1: 800, no2: 3)
counter.incrementBy(no1: 100, no2: 5)
counter.incrementBy(no1: 15000, no2: 3)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
2400
500
45000
Yöntemlerde öz mülkiyet
Yöntemler, tüm tanımlanmış tür örnekleri için 'self' olarak bilinen örtük bir özelliğe sahiptir. 'Self' özelliği, tanımlanmış yöntemleri için mevcut örnekleri belirtmek için kullanılır.
class calculations {
let a: Int
let b: Int
let res: Int
init(a: Int, b: Int) {
self.a = a
self.b = b
res = a + b
print("Inside Self Block: \(res)")
}
func tot(c: Int) -> Int {
return res - c
}
func result() {
print("Result is: \(tot(c: 20))")
print("Result is: \(tot(c: 50))")
}
}
let pri = calculations(a: 600, b: 300)
let sum = calculations(a: 1200, b: 300)
pri.result()
sum.result()
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
Inside Self Block: 900
Inside Self Block: 1500
Result is: 880
Result is: 850
Result is: 1480
Result is: 1450
Örnek Yöntemlerinden Değer Türlerini Değiştirme
Swift 4'te dil yapıları ve numaralandırmaları, örnek yöntemleriyle değiştirilemeyen değer türlerine aittir. Bununla birlikte, Swift 4 dili, davranışı 'değiştirerek' değer türlerini değiştirme esnekliği sağlar. Mutate, örnek yöntemlerinde herhangi bir değişiklik yapacak ve yöntemin çalıştırılmasından sonra orijinal forma geri dönecektir. Ayrıca, 'self' özelliğiyle, örtük işlevi için yeni bir örnek oluşturulur ve çalıştırıldıktan sonra mevcut yöntemi değiştirir.
struct area {
var length = 1
var breadth = 1
func area() -> Int {
return length * breadth
}
mutating func scaleBy(res: Int) {
length *= res
breadth *= res
print(length)
print(breadth)
}
}
var val = area(length: 3, breadth: 5)
val.scaleBy(res: 3)
val.scaleBy(res: 30)
val.scaleBy(res: 300)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda, aşağıdaki sonucu elde ederiz -
9
15
270
450
81000
135000
Mutasyon Yöntemi için Öz Mülkiyet
'Self' özelliğiyle birleştirilen mutasyon yöntemleri, tanımlanan yönteme yeni bir örnek atar.
struct area {
var length = 1
var breadth = 1
func area() -> Int {
return length * breadth
}
mutating func scaleBy(res: Int) {
self.length *= res
self.breadth *= res
print(length)
print(breadth)
}
}
var val = area(length: 3, breadth: 5)
val.scaleBy(res: 13)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda aşağıdaki sonucu alıyoruz. -
39
65
Tür Yöntemleri
Bir yöntemin belirli bir örneği çağrıldığında, bu bir Örnek yöntemi olarak adlandırılır; ve yöntem belirli bir yöntem türünü çağırdığında, buna 'Tür Yöntemleri' denir. 'Sınıflar' için tür yöntemleri 'func' anahtar sözcüğü ile tanımlanır ve yapılar ve numaralandırma türü yöntemleri, 'func' anahtar sözcüğünden önce 'static' anahtar sözcüğü ile tanımlanır.
Tür yöntemleri çağrılır ve erişilir '.' belirli bir örneği çağırmak yerine tüm yöntemin çağrıldığı sözdizimi.
class Math {
class func abs(number: Int) -> Int {
if number < 0 {
return (-number)
} else {
return number
}
}
}
struct absno {
static func abs(number: Int) -> Int {
if number < 0 {
return (-number)
} else {
return number
}
}
}
let no = Math.abs(number: -35)
let num = absno.abs(number: -5)
print(no)
print(num)
Yukarıdaki programı oyun alanını kullanarak çalıştırdığımızda aşağıdaki sonucu alıyoruz. -
35
5