Latest web development tutorials

Metody Swift

Szybka jest funkcją metody związane z pewnymi typami

W Objective-C, klasy są metody jedyny typ zdefiniowany. Ale Swift, nie tylko można wybrać, czy chcesz zdefiniować klasa / struct / enum, ale również elastyczne typu (klasa / struct / enum), które tworzą się na metodzie rozdzielczości.


Metody instancji

W języku Swift, metody instancji należy do określonej klasy, struktury lub wyliczonych przypadkach typu.

Metoda Instance udostępnia następujące metody:

  • Możesz uzyskać dostęp i modyfikowanie właściwości instancji

  • Przykład zapewniając funkcje związane obiektowych

Przykłady metod napisać wokół niego należy między typami klamrowych ({}).

Przykłady metody niejawnej może uzyskać dostęp do wszystkich metod i właściwości innych instancji typu, do którego należy.

Przykłady metod może być wywołana tylko dana instancja klasy, do której należy.

Metoda instancji nie mogą być rozdzielone na istniejące wystąpienie jest tzw.

gramatyka

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

Przykłady

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)

Wyjście powyżej wykonywanie programu jest:

6
0

Klasa Counter definiuje trzy metody instancji:

  • increment , tak że licznik jest zwiększany o jeden;
  • incrementBy(amount: Int) , aby licznik o określoną wartość całkowitą jest zwiększany;
  • reset licznik jest resetowany do 0.

Counter tej klasy deklaruje również zmienną atrybutu count , użyj go, aby śledzić aktualną wartością licznika.


Lokalna nazwa parametru oraz nazwę metody parametry zewnętrzne

Parametry funkcji Swift mogą mieć zarówno lokalną nazwę (w ciele funkcji używanych wewnętrznie) oraz nazwę zewnętrznej (używany podczas wywoływania funkcji

Swift sposoby i metody Objective-C bardzo podobne. Jak w celu C, tak jak nazwę Swift w sposobie zwykle punktowy przyimek pierwszego sposobu parametrów, na przykład: z, na, o, i tak dalej.

Swift domyślny jedynie metody pierwszego parametru nazwa lokalna nazwa parametru; domyślnym równocześnie do drugiego i kolejnego globalnego Nazwa Nazwa parametru.

Poniższe przykłady "no1" zadeklarowana lokalnie w nazwie parametru w SWIFT. "No2" dla globalnych deklaracji i dostępne za pośrednictwem zewnętrznego programu.

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)

Wyjście powyżej wykonywanie programu jest:

600
320
3666

Niezależnie od tego, aby zapewnić ustawienia nazwy zewnętrznych

Zmusimy pierwszy argument, aby dodać nazwę zewnętrznego nazwy miejscowej nazwie jak użytku zewnętrznego (Swift 2.0 Przed użyciem znak #).

Zamiast tego, możemy użyć także podkreślenia (_), aby ustawić drugi i kolejne argumenty nie zawierają nazwę zewnętrznego.

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)

Wyjście powyżej wykonywanie programu jest:

2400
500
45000

nieruchomości na własny

Każda instancja typu ma właściwość o nazwie niejawna ja, ja dokładnie tak samo jak sam instancji.

Można wykorzystać to niejawne Własna nieruchomość w instancji metody instancji odwołać bieżącą instancję.

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

Wyjście powyżej wykonywanie programu jest:

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

Modyfikacja metody instancji typu wartości

Swift konstrukcje językowe i wyliczenia są typy wartości. Ogólnie rzecz biorąc, typ wartości obiekt nie może być zmodyfikowanym metodami np.

Ale jeśli naprawdę trzeba zmienić strukturę lub wyliczana nieruchomości w określony sposób, można wybrać wariant (mutacjom) metoda, to metoda może zmienić właściwości z metody wewnętrznych; żadnych zmian, a to robi na koniec sposobem będzie pozostawiona w pierwotnej konstrukcji.

Metoda także może dać dorozumiany cesja obiekt z własnym nową instancję tej nowej instancji jest zastąpienie oryginalnego wystąpienie metodą.

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)

Wyjście powyżej wykonywanie programu jest:

9
15
270
450
81000
135000

W zmiennej procesowej przypisany do siebie

Zmienny metody można przypisać atrybuty własny oznaczał nową instancję.

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)

Wyjście powyżej wykonywanie programu jest:

39
65

Rodzaj metody

Metoda instancji jest metoda nazywana jest instancją typu, można również określić rodzaj metody nazywa się metoda ta nazywana jest metodą typu.

Struktura komunikat i typ wyliczeniowy metoda przed metody kluczowego func z hasła statycznego. Klasa może używać klasy słów kluczowych, aby umożliwić podklasy zastąpić realizację klasy nadrzędnej.

Ten sam typ i instancji metody wykorzystujące kropki (.) Składnia do wywołania.

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)

Wyjście powyżej wykonywanie programu jest:

35
5