Latest web development tutorials

Swift Methoden

Swift ist eine Funktion des Verfahrens mit bestimmten Typen zugeordnet

In Objective-C, sind Klassen die einzigen Typ definierten Methoden. Aber Swift, Sie können nicht nur wählen, ob Sie eine Klasse / Struktur / Enumeration zu definieren, aber auch flexibel in der Art (Klasse / Struktur / enum), die Sie auf der Definition Methode erstellen.


Beispiel Methods

In Swift Sprache gehört eine Instanzmethode zu einer bestimmten Klasse, eine Struktur oder Aufzählungstyp-Instanzen.

Instance-Verfahren bietet die folgenden Methoden:

  • Sie können Instanzeigenschaften zugreifen und diese ändern

  • Beispiel Bereitstellung von objektbezogenen Funktionen

Beispiele von Verfahren zu schreiben um sie zwischen den Arten von Klammern gehört ({}).

Beispiele von impliziten Verfahren können alle Methoden zuzugreifen und Eigenschaften anderer Instanzen des Typs, zu dem sie gehört.

Beispiele von Verfahren kann nur eine bestimmte Instanz der Klasse aufgerufen werden, zu dem sie gehört.

Instanz Methode kann nicht auf die vorhandene Instanz getrennt werden aufgerufen.

Grammatik

func funcname(Parameters) -> returntype
{
    Statement1
    Statement2
    ……
    Statement N
    return parameters
}

Beispiele

import Cocoa

class Counter {
    var count = 0
    func increment() {
        count++
    }
    func incrementBy(amount: Int) {
        count += amount
    }
    func reset() {
        count = 0
    }
}
// 初始计数值是0
let counter = Counter()

// 计数值现在是1
counter.increment()

// 计数值现在是6
counter.incrementBy(5)
print(counter.count)

// 计数值现在是0
counter.reset()
print(counter.count)

Die obige Programmausführung Ausgabe ist:

6
0

Zähler-Klasse definiert drei Instanzmethoden:

  • increment so daß der Zähler um eins inkrementiert wird;
  • incrementBy(amount: Int) machen Zähler um einen bestimmten ganzzahligen Wert erhöht wird;
  • reset der Zähler auf 0 zurückgesetzt wird.

Counter Diese Klasse deklariert ebenfalls eine variable Attribut count , verwenden Sie es den Überblick über den aktuellen Zählerwert zu halten.


Lokale Parametername und der Name des Verfahrens werden die externen Parameter

Swift-Funktionsparameter können beide haben einen lokalen Namen (in den Körper der Funktion intern verwendet) und einen externen Namen (verwendet, wenn Funktionen aufrufen

Swift Methoden und Objective-C-Methode sehr ähnlich. Wie in Objective-C, das gleiche wie der Name des Swift in dem Verfahren in der Regel eine Präposition zeigt auf den ersten Parameter-Methode, beispielsweise: mit, zum, durch, und so weiter.

Swift Standard nur auf das Verfahren des ersten Parameters der Name eines lokalen Parametername, der Standard zugleich auf die zweite und die folgenden globalen Parametername Parameternamen.

Die folgenden Beispiele 'No1' deklariert lokal im Parameternamen in den schnellen. 'No2' für globale Erklärungen und über ein externes Programm aufgerufen.

import Cocoa

class division {
    var count: Int = 0
    func incrementBy(no1: Int, no2: Int) {
        count = no1 / no2
        print(count)
    }
}

let counter = division()
counter.incrementBy(1800, no2: 3)
counter.incrementBy(1600, no2: 5)
counter.incrementBy(11000, no2: 3)

Die obige Programmausführung Ausgabe ist:

600
320
3666

Ob externe Name Einstellungen zur Verfügung zu stellen

Wir zwingen, das erste Argument einen externen Namen auf den Namen des lokalen Namen als externe Nutzung (Swift 2.0, bevor Sie das # -Zeichen) hinzuzufügen.

Stattdessen können wir es verwenden, auch (_) unterstreicht die zweite und die folgenden Argumente festlegen keinen externen Namen angeben.

import Cocoa

class multiplication {
    var count: Int = 0
    func incrementBy(first no1: Int, no2: Int) {
        count = no1 * no2
        print(count)
    }
}

let counter = multiplication()
counter.incrementBy(first: 800, no2: 3)
counter.incrementBy(first: 100, no2: 5)
counter.incrementBy(first: 15000, no2: 3)

Die obige Programmausführung Ausgabe ist:

2400
500
45000

Selbst Immobilien

Jede Instanz des Typs hat eine Eigenschaft implizit Selbst genannt, selbst genau die gleiche wie die Instanz selbst.

Sie können diese impliziten Selbst eine Eigenschaft in einer Instanz-Methodeninstanz verwenden, um die aktuelle Instanz zu verweisen.

import Cocoa

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("Self 内: \(res)")
    }
    
    func tot(c: Int) -> Int {
        return res - c
    }
    
    func result() {
        print("结果为: \(tot(20))")
        print("结果为: \(tot(50))")
    }
}

let pri = calculations(a: 600, b: 300)
let sum = calculations(a: 1200, b: 300)

pri.result()
sum.result()

Die obige Programmausführung Ausgabe ist:

Self 内: 900
Self 内: 1500
结果为: 880
结果为: 850
结果为: 1480
结果为: 1450

Ändern Sie den Wert Typ-Instanz-Methode

Swift Sprachstrukturen und Aufzählungen sind Werttypen. Im Allgemeinen kann die Art des Wertes der Immobilie nicht in seiner Instanzmethoden modifiziert werden.

Aber wenn Sie wirklich die Struktur oder die aufgezählten Eigenschaft in einer bestimmten Art und Weise ändern müssen, können Sie die Variation wählen (mutiert) die Methode, dann kann das Verfahren die Eigenschaften aus der internen Verfahren zu ändern, alle Änderungen, und es tut am Ende des Verfahrens wird es in der ursprünglichen Struktur gelassen werden.

Das Verfahren kann es auch eine neue Instanz dieser neuen Instanz impliziten Selbsteigenschaftszuweisung geben die ursprüngliche Instanz mit der Methode zu ersetzen.

import Cocoa

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(3)
val.scaleBy(30)
val.scaleBy(300)

Die obige Programmausführung Ausgabe ist:

9
15
270
450
81000
135000

In der Prozessvariablen selbst zugewiesen

Variable Methode können Attribute zuweisen impliziert selbst eine neue Instanz.

import Cocoa

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(13)

Die obige Programmausführung Ausgabe ist:

39
65

Typ Methoden

Instanzmethode ist eine Methode eine Instanz des Typs aufgerufen wird, können Sie auch die Art der Methode nennt sich definieren, wird diese Methode Typ-Methode aufgerufen.

Statement Struktur und Aufzählungstyp Verfahren vor func Schlüsselwort-Methode mit dem Schlüsselwort static. Klasse könnte das Schlüsselwort Klasse verwenden, um Unterklassen der übergeordneten Klasse Implementierung außer Kraft setzen können.

Die gleiche Art und Instanz-Methoden mit dem Punkt (.) Syntax aufzurufen.

import Cocoa

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(-35)
let num = absno.abs(-5)

print(no)
print(num)

Die obige Programmausführung Ausgabe ist:

35
5