Latest web development tutorials

Méthodes Swift

Swift est une fonction de la méthode associée à certains types

En Objective-C, les classes sont les méthodes que de type défini. Mais Swift, non seulement vous pouvez choisir si vous souhaitez définir une classe / struct / enum, mais aussi flexible dans le type (classe / struct / enum) que vous créez sur la méthode de définition.


Méthodes d'instance

Dans le langage Swift, une méthode d'instance appartient à une classe particulière, une structure ou des instances de type énumération.

méthode d'instance fournit les méthodes suivantes:

  • Vous pouvez accéder et modifier les propriétés d'instance

  • Exemple fournissant des fonctions liées à l'objet

Des exemples de procédés pour écrire autour d'elle appartient entre les types d'accolades ({}).

Des exemples de méthode implicite peuvent accéder à toutes les méthodes et propriétés d'autres instances du type auquel il appartient.

Des exemples de méthodes ne peuvent être appelées une instance particulière de la classe à laquelle il appartient.

méthode d'instance ne peut pas être séparé de l'instance existante est appelée.

grammaire

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

Exemples

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)

La sortie de l'exécution du programme ci-dessus est la suivante:

6
0

classe de compteur définit trois méthodes d'instance:

  • increment de telle sorte que le compteur est incrémenté d'une unité ;
  • incrementBy(amount: Int) faire compteur par une valeur entière spécifiée est incrémenté;
  • reset le compteur est remis à 0.

Counter Cette classe déclare également un attribut de variable count , l' utiliser pour garder une trace de la valeur courante du compteur.


Nom du paramètre local et le nom de la méthode, les paramètres externes

paramètres de la fonction Swift peuvent avoir à la fois un nom local (dans le corps de la fonction utilisée en interne) et un nom externe (utilisé lors de l'appel de fonctions

méthodes Swift et méthode Objective-C très similaire. Comme en Objective-C, le même que le nom de Swift dans la méthode habituellement une préposition de points à la première méthode de paramètres, par exemple: avec, pour, par, et ainsi de suite.

défaut Swift uniquement à la méthode du premier paramètre le nom d'un nom de paramètre local, la valeur par défaut dans le même temps à la deuxième et après le nom du paramètre nom global de paramètre.

de la no1 'Les exemples suivants déclarés localement dans le nom du paramètre dans le rapide. 'No2 »pour les déclarations globales et accessibles par le biais d'un programme externe.

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)

La sortie de l'exécution du programme ci-dessus est la suivante:

600
320
3666

Que ce soit pour fournir des paramètres de noms externes

Nous forçons le premier argument d'ajouter un nom externe au nom du nom local usage externe (Swift 2.0 avant d'utiliser le signe #).

Au lieu de cela, nous pouvons l'utiliser souligne également (_) pour régler les deuxième et les suivants arguments ne fournissent pas un nom externe.

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)

La sortie de l'exécution du programme ci-dessus est la suivante:

2400
500
45000

propriété d'auto

Chaque instance du type possède une propriété appelée auto implicite, auto exactement le même que l'instance elle-même.

Vous pouvez utiliser cette auto implicite une propriété dans une instance de méthode d'instance pour faire référence à l'instance en cours.

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

La sortie de l'exécution du programme ci-dessus est la suivante:

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

Modifier la méthode d'instance de type valeur

structures linguistiques Swift, et les énumérations sont des types de valeur. En général, le type de la valeur de la propriété ne peut pas être modifiée dans ses méthodes d'instance.

Mais si vous avez vraiment besoin de modifier la structure ou des biens énumérés de manière spécifique, vous pouvez choisir la variation (mutation) la méthode, la méthode peut modifier les propriétés de la méthode interne; tout changement, et il le fait à la fin de la méthode, il sera laissé dans la structure originale.

Le procédé peut également donner implicite cession de propriété d'auto une nouvelle instance de cette nouvelle instance pour remplacer l'instance d'origine avec la méthode.

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)

La sortie de l'exécution du programme ci-dessus est la suivante:

9
15
270
450
81000
135000

Dans la variable de processus affecté à l'auto

méthode variable peut assigner des attributs auto impliquait une nouvelle instance.

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)

La sortie de l'exécution du programme ci-dessus est la suivante:

39
65

Type de méthodes

méthode d'instance est une méthode est appelée une instance du type, vous pouvez également définir le type de méthode elle-même appelle, cette méthode est appelée méthode de type.

structure de déclaration et de la méthode de type énuméré avant la méthode func de mot-clé avec le mot-clé statique. Classe peut utiliser la classe mot-clé pour permettre la mise en œuvre des sous-classes remplacent de la classe parent.

Le même type d'instance et des méthodes utilisant le point (.) Syntaxe d'invoquer.

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)

La sortie de l'exécution du programme ci-dessus est la suivante:

35
5