Il reste de moins en moins de temps avant le lancement du
cours iOS Developer , donc nous continuons aujourd'hui Ă publier du matĂ©riel issu des 10 Questions sur la sĂ©rie Swift. La premiĂšre partie peut ĂȘtre
lue ici .

Expliquer les génériques dans Swift?
Les génériques (modÚles génériques) vous permettent d'écrire des fonctions et des types flexibles et réutilisables qui peuvent fonctionner avec n'importe quel type. Vous pouvez écrire du code qui évite la duplication et exprime son objectif de maniÚre claire et abstraite.
Les types Array et Dictionary dans Swift sont des collections universelles (génériques).
Dans le code ci-dessous, une fonction universelle pour échanger deux valeurs est utilisée pour une chaßne et un entier. Ceci est un exemple de code réutilisable.
func swapTwoValues<T>(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA } var num1 = 4 var num2 = 5 var str1 = âaâ var str2 = âbâ swapTwoValues(&num1,&num2) swapTwoValues(&str1,&str2) print (ânum1:â, num1)
Quels sont les types facultatifs dans swift et quand doivent-ils ĂȘtre utilisĂ©s?
Facultatif (facultatif, «facultatif») dans Swift est le type dans lequel la valeur peut ou non ĂȘtre. Les options sont indiquĂ©es en ajoutant "?" Ă tout type.
Options d'utilisation de l'option:- Extraits de code qui peuvent échouer (je m'attendais à quelque chose, mais je n'ai rien reçu).
- Les objets qui sont actuellement vides mais peuvent devenir quelque chose plus tard (et vice versa).
Un bon exemple d'une option:Une propriĂ©tĂ© qui peut ou non ĂȘtre prĂ©sente , comme un deuxiĂšme prĂ©nom ou un mari / femme dans la classe Personne.Une mĂ©thode qui peut renvoyer une valeur ou rien , par exemple, une correspondance dans un tableau.Une mĂ©thode qui peut renvoyer un rĂ©sultat ou une erreur et ne rien retourner , par exemple, essayez de lire le contenu d'un fichier (Ă la suite de quoi les donnĂ©es du fichier seront gĂ©nĂ©ralement renvoyĂ©es), mais le fichier n'existe pas.DĂ©lĂ©guez les propriĂ©tĂ©s qui ne doivent pas toujours ĂȘtre dĂ©finies et gĂ©nĂ©ralement dĂ©finies aprĂšs l'initialisation.
Comme des maillons faibles dans les classes . Ce qu'ils indiquent peut ĂȘtre rĂ©glĂ© Ă zĂ©ro Ă tout moment.
Si vous avez besoin d'un moyen de savoir quand la valeur est définie (données non encore chargées> données) au lieu d'utiliser une variable booléenne distincte dataLoaded.
Qu'est-ce que le chaĂźnage optionnel dans Swift?
Les processus de demande, d'appel de propriétés, d'indices et de méthodes pour un facultatif, qui peuvent avoir la valeur «nil», sont définis comme une séquence facultative (chaßne facultative) .La séquence facultative renvoie deux valeurs -
- si l'option contient une «valeur», alors lorsque les propriétés, méthodes et indices qui lui sont associés sont appelés, la valeur est retournée
- si une option contient «nil», toutes les propriétés, méthodes et indices qui lui sont associés renvoient nil
Une séquence facultative est une alternative au déballage forcé.
Qu'est-ce que le déballage forcé?
Le déballage forcé est un moyen de
récupérer la valeur contenue dans une option. Cette opération est dangereuse car vous dites essentiellement au compilateur: je suis sûr que cette option contient une vraie valeur, extrayez-la!
let value: Int? = 1 let newValue: Int = value!
Qu'est-ce que le déballage implicite?
Déballage implicite : lorsque nous définissons une option implicitement décompressée, nous définissons un conteneur qui forcera automatiquement le déballage à chaque lecture.
var name: String! = âViratâ let student = name
Si l'option facultative implicitement dĂ©compressĂ©e est nulle et que vous essayez d'accĂ©der Ă sa valeur compressĂ©e, vous gĂ©nĂ©rerez une erreur d'exĂ©cution. Le rĂ©sultat est exactement le mĂȘme que si vous avez placĂ© un point d'exclamation aprĂšs l'option facultative habituelle, qui ne contient pas de valeur.Qu'est-ce que la reliure facultative?
Vous pouvez décompresser les options de maniÚre «sûre» ou «non sécurisée». Un moyen sûr consiste à utiliser des classeurs facultatifs.
La liaison facultative est utilisée pour déterminer si une option contient une valeur, et si c'est le cas, nous rendrons cette valeur disponible sous forme de constante de temps ou de variable. Ainsi, il n'est pas nécessaire d'utiliser un suffixe! pour accéder à sa valeur.
let possibleString: String? = "Hello" if let actualString = possibleString {
Qu'est-ce qu'un Guard
et quels sont ses avantages?
La déclaration de
guard
est simple et puissante. Il vérifie une condition et, s'il est évalué comme faux, l'instruction else est exécutée, ce qui met généralement fin à la méthode.
func addStudent(student: [String: String]) { guard let name = student["name"] else { return } print("Added \(name)!") guard let rollNo = student ["rollNo"] else { print("roll No not assigned") return } print("Assigned roll no is \(rollNo).") } addStudent(student: ["name": "Ravi"])
L'avantage de
guard
est
une exécution plus rapide .
Guard
bloc
Guard
n'est exécuté que si la condition est fausse et le bloc sera quitté via une instruction de transfert de contrÎle telle que
return
,
break
,
continue
ou
thrown
. Cela fournit une sortie anticipée et moins de supports. Une sortie anticipée signifie une exécution plus rapide.
Veuillez vous rĂ©fĂ©rer Ă
cet article pour plus d'informations.
Quand faut guard let
il utiliser le guard let
et quand le if let
?- Faites
guard
lorsque vous souhaitez éliminer les entrées inattendues / incorrectes et concentrez-vous sur l'objectif si vous avez d'autres moyens de gérer les entrées. - Utilisez
else
bloc de guard
if
else
pour réduire l'imbrication et le retrait, car il est relativement compact.
Qu'est-ce que le defer
?
L'
defer
utilisée pour exécuter un ensemble d'instructions juste avant que l'exécution du code ne quitte le bloc actuel.
L'
defer
à l'intérieur du bloc
if
sera exécutée en premier. Ceci est suivi par le modÚle LIFO pour exécuter les instructions de
defer
restantes.
func doSomething() { defer { print(â1â)} defer { print(â2â)} defer { print(â3â)} if 1<2 { defer { print("1<2")} } defer { print(â4â)} defer { print(â5â)} defer { print(â6â)} } 1<2 6 5 4 3 2 1
Liste des opérateurs de transfert de contrÎle utilisés dans Swift?
break
- L'instruction
break
met immédiatement fin à l'exécution de la totalité de l'instruction de flux de contrÎle.
continue
- l'instruction
continue
indique Ă la boucle d'arrĂȘter ce qu'elle fait et de recommencer au dĂ©but de la prochaine itĂ©ration de la boucle.
return
- renvoie les valeurs des fonctions.
throw
- besoin de transfert d'erreur Ă l'aide des fonctions de lancement
fallthrough
- l'instruction
fallthrough
utilisée dans le bloc de cas de commutateur pour exécuter l'instruction case, qui est à cÎté des instructions case correspondantes en fonction des besoins de l'utilisateur.
Dans
swift
l'opérateur
fallthrough
utilisĂ© pour exĂ©cuter le cas suivant, mĂȘme s'il ne correspond pas Ă l'original.
let integerToDescribe = 5 var description = âThe number \(integerToDescribe) isâ switch integerToDescribe { case 2, 3, 5, 7, 11, 13, 17, 19: description += â a prime number, and alsoâ fallthrough case 10: description += â case 10.â default: description += â an integer.â } print(description)
La fin de la deuxiĂšme partie. La premiĂšre partie peut ĂȘtre
lue ici .
Nous attendons vos commentaires et rappelons que dans quelques heures il y aura une
journée portes ouvertes , dans le cadre de laquelle nous parlerons en détail de notre cours.