let val = (Double)6
Référence: The Swift Programming Language: Guide du langage: Les bases: Constantes et variables
let x = 5
guard x == 5 { return }
guard
manque le else
guard
manque un then
Référence: The Swift Programming Language: Guide du langage: Flux de contrôle: Sortie anticipée
enum Direction {
case north, south, east, west
}
String
Any
Int
Référence: The Swift Programming Language: Guide du langage: Énumérations: Valeurs brutes
Référence: Apple Developer: Documentation: Dispatch: Dispatch Group
let val = 5
print("la valeur est: \(val)")
Référence: The Swift Programming Language: Guide du langage: Chaînes et caractères: Interpolation de chaînes
vals
après l'exécution de ce code?var vals = [10, 2]
vals.sort { (s1, s2) -> Bool in
s1 > s2
}
[10, 2]
[2, 10]
nil
Référence: Apple Developer: Documentation: Swift: Array: sort()
typealias Thing = [String: Any]
var stuff: Thing
print(type(of: stuff))
Dictionnaire<String, Any>
Dictionnaire
Erreur
Chose
Référence: The Swift Programming Language: Référence du langage: Types: Identifiant de type
let x = ["1", "2"].dropFirst()
let y = x[0]
1
2
nil
explication
dropFirst()
de Swift.Collection.Array
renvoie un type de ArraySlice<Element>
comme dans les pages de documentation:
@inlinable public func dropFirst(_ k: Int = 1) -> ArraySlice<Element>
Le type ArraySlice permet de réaliser rapidement et efficacement des opérations sur des sections d'un tableau plus grand. Au lieu de copier les éléments d'une tranche dans un nouveau stockage, une instance de ArraySlice présente une vue sur le stockage d'un tableau plus grand. Et parce que ArraySlice présente la même interface que Array, vous pouvez généralement effectuer les mêmes opérations sur une tranche que sur le tableau d'origine.
Les tranches conservent les mêmes indices que le tableau plus grand pour les mêmes éléments, donc l'indice de départ d'une tranche dépend de la façon dont elle a été créée, vous permettant d'effectuer des opérations basées sur l'indice sur un tableau complet ou une tranche.
Le code ci-dessus renvoie une tranche de valeur ["2"]
mais l'index n'a pas changé. let y = x[1]
donnerait le résultat attendu.
Pour faire référence en toute sécurité aux indices de début et de fin d'une tranche, utilisez toujours les propriétés startIndex et endIndex au lieu de valeurs spécifiques.
Référence
var test = 1 == 1
true
OUI
1
Référence: The Swift Programming Language: Guide du langage: Opérateurs de base: Opérateurs de comparaison
var x: Int?
let y = x ?? 5
5
0
nil
func add(a: Int, b: Int) -> Int { return a+b }
Int
(Int, Int) -> Int
Int<Optional>
Référence: [_The Swift Programming Language: Guide du langage: Fon
ctions: Types de fonction_](https://docs.swift.org/swift-book/LanguageGuide/Functions.html#ID174)
func myFunc(_ a: Int, b: Int) -> Int {
return a + b
}
myFunc(5, b: 6)
myFunc(5, 6)
myFunc(a: 5, b: 6)
myFunc(a, b)
Encodable
et Decodable
Références:
let value1 = "\("test".count)"
String
Int
nul
test.count
Référence: The Swift Programming Language: Guide du langage: Chaînes et caractères: Interpolation de chaînes
Référence: The Swift Programming Language: Guide du langage: Fermetures: Fermetures échappantes
class Person {
var name: String
var address: String
}
var name
n'est pas formaté correctement. address
est un mot-clé. let names = ["Bear", "Joe", "Clark"]
names.map { (s) -> String in
return s.uppercased()
}
["BEAR", "JOE", "CLARK"]
["B", "J", "C"]
["Bear", "Joe", "Clark"]
let val = 5
Int
item
Nombre
Int
extension String {
var firstLetter: Character = "c" {
didSet {
print("nouvelle valeur")
}
}
}
didSet
prend un paramètre. c
n'est pas un caractère. Référence: The Swift Programming Language: Guide du langage: Extensions: Propriétés calculées
nouvellesAnciennes
appellent Référence: The Swift Programming Language: Guide du langage: Propriétés