Méthode rapide
Les méthodes Swift sont des fonctions associées à certains types spécifiques
En Objective-C, les classes sont les seuls types qui peuvent définir des méthodes. Mais dans Swift, vous pouvez non seulement choisir de définir une classe/structure/énumération, mais également définir de manière flexible des méthodes sur les types (classes/structures/énumérations) que vous créez.
Méthodes d'instance
Dans le langage Swift, les méthodes d'instance sont des méthodes qui appartiennent à des instances d'une classe, d'une structure ou d'un type d'énumération spécifique.
Les méthodes d'instance fournissent les méthodes suivantes :
peuvent accéder aux propriétés de l'instance et les modifier.
Fournit des fonctionnalités liées à l'objectif de l'instance
Les méthodes d'instance doivent être écrites entre les accolades environnantes ({}) du type auquel elles appartiennent.
Une méthode d'instance a un accès implicite à toutes les autres méthodes d'instance et propriétés de son type.
Une méthode d'instance ne peut être appelée que par une instance spécifique de la classe à laquelle elle appartient.
Les méthodes d'instance ne peuvent pas être appelées indépendamment de l'instance existante.
Syntaxe
func funcname(Parameters) -> returntype { Statement1 Statement2 …… Statement N return parameters }
Instance
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)
Le résultat de l'exécution du programme ci-dessus est :
6 0
La classe Counter définit trois méthodes d'instance :
increment
Incrémente le compteur de unincrementBy(amount: Int)
Incrémente le compteur d'une valeur entière spécifiée-
reset
Remettre le compteur à 0.
Counter
Cette classe déclare également un attribut mutable count
, qui est utilisé pour garder une trace de la valeur actuelle du compteur.
Nom du paramètre local et nom du paramètre externe de la méthode
Les paramètres de la fonction Swift peuvent avoir à la fois un nom local (utilisé dans le corps de la fonction) et un nom externe (utilisé lors de l'appel de la function
Les méthodes en Swift sont très similaires aux méthodes en Objective-C Comme en Objective-C, le nom d'une méthode en Swift pointe généralement vers le premier paramètre de la méthode avec une préposition, telle que : with. , for. , by, etc.
Swift donne uniquement au premier nom de paramètre de la méthode un nom de paramètre local par défaut, il donne également au deuxième nom de paramètre et aux suivants les noms de paramètres globaux suivants ; , 'no1' est déclaré comme nom de paramètre local dans Swift. 'no2' est utilisé pour la déclaration globale et l'accès via des programmes externes
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 du programme ci-dessus est :
600 320 3666
. Que ce soit. Fournir des paramètres de nom externe
Nous forçons l'ajout d'un nom externe au premier paramètre pour utiliser ce nom local comme nom externe (avant Swift 2.0, le signe # était utilisé au contraire). utilisez des traits de soulignement. (_) Définissez le deuxième paramètre et les suivants sans fournir de nom externe. Chaque instance du type 🎜>
a un attribut implicite appelé self qui est complètement équivalent à l'instance elle-même. Vous pouvez utiliser cet attribut self implicite dans la méthode d'instance d'une instance. Faites référence à l'instance actuelleimport 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)Le résultat de l'exécution du programme ci-dessus est :
2400 500 45000
Modifier le type de valeur dans la méthode d'instance
Les structures et les énumérations en langage Swift sont des types de valeur. En général, les propriétés d'un type valeur ne peuvent pas être modifiées dans ses méthodes d'instance.
Cependant, si vous avez vraiment besoin de modifier les propriétés de la structure ou de l'énumération dans une méthode spécifique, vous pouvez choisir de muter la méthode, et la méthode peut alors modifier ses propriétés depuis l'intérieur de la méthode ; il restera dans la structure d'origine à la fin de la méthode. La méthode
peut également attribuer une nouvelle instance à son attribut self implicite. Cette nouvelle instance remplacera l'instance d'origine une fois la méthode terminée.
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()
Le résultat de sortie de l'exécution du programme ci-dessus est :
Self 内: 900 Self 内: 1500 结果为: 880 结果为: 850 结果为: 1480 结果为: 1450
Attribuer une valeur à self dans la méthode variable
La méthode variable peut attribuer un nouvelle valeur à l’instance d’attribut implicite.
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)
Le résultat de l'exécution du programme ci-dessus est :
9 15 270 450 81000 135000
Méthode de type
La méthode d'instance est une méthode appelée par une instance du type. définir le type La méthode appelée par elle-même est appelée méthode de type.
Déclarez les méthodes de type des structures et des énumérations, et ajoutez le mot-clé static avant le mot-clé func de la méthode. Les classes peuvent utiliser le mot-clé class pour permettre aux sous-classes de remplacer les méthodes d'implémentation de la classe parent.
Les méthodes de type sont appelées avec la syntaxe point (.) tout comme les méthodes d'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)
Le résultat de sortie de l'exécution du programme ci-dessus est :
39 65