Latest web development tutorials

Metodi Swift

Swift è una funzione del metodo associato con alcuni tipi

In Objective-C, le classi sono i metodi solo tipo definito. Ma Swift, non solo si può scegliere se si vuole definire una classe / struct / enum, ma anche flessibile tipo (classe / struttura / enum) che si crea sul metodo di definizione.


Metodi di istanza

Nel linguaggio Swift, un metodo di istanza appartiene ad una classe particolare, una struttura o di casi tipo enumerato.

metodo di istanza fornisce i seguenti metodi:

  • È possibile accedere e modificare le proprietà di istanza

  • Esempio fornire funzioni relative agli oggetti

Esempi di metodi per scrivere intorno ad esso appartiene tra i tipi di parentesi graffe ({}).

Esempi di metodo implicito possono accedere a tutti i metodi e le proprietà di altre istanze del tipo a cui appartiene.

Esempi di metodi possono essere chiamati solo una particolare istanza della classe a cui appartiene.

metodo di istanza non può essere separato per l'istanza esistente è chiamato.

grammatica

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

Esempi

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)

L'output sopra l'esecuzione del programma è il seguente:

6
0

Classe contatore definisce tre metodi di istanza:

  • increment in modo che il contatore viene incrementato di uno;
  • incrementBy(amount: Int) fare contatore da un valore intero specificato viene incrementato;
  • reset il contatore viene resettato a 0.

Counter Questa classe dichiara anche un attributo variabile count , usarlo per tenere traccia del valore corrente del contatore.


nome del parametro locale e il nome del metodo i parametri esterni

parametri della funzione Swift possono avere sia un nome locale (nel corpo della funzione utilizzata internamente) e un nome esterno (utilizzato al momento della chiamata funzioni

metodi Swift e il metodo Objective-C molto simile. Come in Objective-C, lo stesso come il nome del Swift nel metodo solitamente una preposizione punti al primo metodo, per esempio: con, per, da, e così via.

predefinito Swift soltanto il metodo del primo parametro il nome di un nome di parametro locale predefinito contemporaneamente al secondo e successivo nome del parametro nome parametro globale.

Gli esempi che seguono 'no1' dichiarato a livello locale nel nome del parametro nella rapida. 'No2' per le dichiarazioni globali e vi si accede attraverso un programma esterno.

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)

L'output sopra l'esecuzione del programma è il seguente:

600
320
3666

Sia per fornire le impostazioni di nome esterni

Noi costringiamo il primo argomento per aggiungere un nome esterno per il nome del nome locale come uso esterno (Swift 2.0 prima di utilizzare il segno #).

Invece, possiamo usarlo sottolinea anche (_) per impostare la seconda e le successive argomentazioni non forniscono un nome esterno.

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)

L'output sopra l'esecuzione del programma è il seguente:

2400
500
45000

Struttura con

Ogni istanza del tipo ha una proprietà chiamata implicita sé, auto esattamente la stessa della istanza stessa.

È possibile utilizzare questo implicito sé una proprietà in un'istanza metodo di istanza per fare riferimento all'istanza corrente.

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

L'output sopra l'esecuzione del programma è il seguente:

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

Modificare il metodo di istanza tipo di valore

strutture linguistiche Swift, ed enumerazioni sono tipi di valore. In generale, il tipo del valore della proprietà non può essere modificato nei metodi di istanza.

Ma se si ha realmente bisogno di modificare la struttura o la proprietà enumerate in un modo specifico, è possibile scegliere la variazione (mutare) il metodo, il metodo può modificare le proprietà del metodo interno, eventuali modifiche, e lo fa alla fine del metodo sarà lasciato nella struttura originaria.

Il metodo può anche dare implicita assegnazione di proprietà di sé una nuova istanza di questa nuova istanza per sostituire l'istanza originale con metodo.

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)

L'output sopra l'esecuzione del programma è il seguente:

9
15
270
450
81000
135000

Nella variabile di processo assegnato all'auto

Metodo variabile può assegnare gli attributi di sé implicava una nuova istanza.

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)

L'output sopra l'esecuzione del programma è il seguente:

39
65

metodi di tipo

metodo di istanza è un metodo viene chiamato un'istanza del tipo, è anche possibile definire il tipo di metodo si chiama, questo metodo viene chiamato metodo tipo.

Struttura Normativa e metodo di tipo enumerato prima metodo func parola chiave con la parola chiave static. Class potrebbe utilizzare la classe parola chiave per consentire sottoclassi sostituiscono l'implementazione della classe genitore.

Lo stesso tipo di istanza e metodi che utilizzano il punto (.) Sintassi di invocare.

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)

L'output sopra l'esecuzione del programma è il seguente:

35
5