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