let val = (Double)6
Riferimento: The Swift Programming Language: Language Guide: The Basics: Constants and Variables
let x = 5
guard x == 5 { return }
else
nel guard
guard
manca un then
Riferimento: The Swift Programming Language: Language Guide: Control Flow: Early Exit
enum Direction {
case north, south, east, west
}
String
Any
Int
Riferimento: The Swift Programming Language: Language Guide: Enumerations: Raw Values
Riferimento: Apple Developer: Documentazione: Dispatch: Dispatch Group
let val = 5
print("il valore è: \(val)")
Riferimento: The Swift Programming Language: Language Guide: Strings and Characters: String Interpolation
vals
dopo l'esecuzione di questo codice?var vals = [10, 2]
vals.sort { (s1, s2) -> Bool in
s1 > s2
}
[10, 2]
[2, 10]
nil
Riferimento: Apple Developer: Documentazione: Swift: Array: sort()
typealias Thing = [String: Any]
var stuff: Thing
print(type(of: stuff))
Dictionary<String, Any>
Dictionary
Error
Thing
Riferimento: The Swift Programming Language: Language Reference: Types: Type Identifier
let x = ["1", "2"].dropFirst()
let y = x[0]
1
2
nil
spiegazione
dropFirst()
da Swift.Collection.Array
restituisce un tipo di ArraySlice<Element>
come nelle pagine di documentazione:
@inlinable public func dropFirst(_ k: Int = 1) -> ArraySlice<Element>
Il tipo ArraySlice rende veloci ed efficienti le operazioni su sezioni di un array più grande. Invece di copiare gli elementi di una slice in un nuovo spazio di archiviazione, un'istanza di ArraySlice presenta una vista sullo spazio di archiviazione di un array più grande. E poiché ArraySlice presenta la stessa interfaccia di Array, è possibile eseguire generalmente le stesse operazioni su una slice che si potrebbe fare sull'array originale.
Le fette mantengono gli indici
A differenza di Array e ContiguousArray, l'indice iniziale per un'istanza di ArraySlice non è sempre zero. Le fette mantengono gli stessi indici dell'array più grande per gli stessi elementi, quindi l'indice iniziale di una slice dipende da come è stata creata, consentendo di eseguire operazioni basate sugli indici su un array completo o su una slice.
Il codice sopra restituisce una slice di valore ["2"]
ma l'indice non è cambiato. let y = x[1]
darebbe il risultato previsto.
Per fare riferimento in modo sicuro agli indici di inizio e fine di una slice, utilizzare sempre le proprietà startIndex ed endIndex anziché valori specifici.
Riferimento
var test = 1 == 1
true
YES
1
Riferimento: The Swift Programming Language: Language Guide: Basic Operators: Comparison Operators
var x: Int?
let y = x ?? 5
5
0
nil
Riferimento: The Swift Programming Language: Language Guide: Basic Operators: Nil-Coalescing Operators
func add(a: Int, b: Int) -> Int { return a+b }
Int
(Int, Int) -> Int
Int<Optional>
Rifer
imento: The Swift Programming Language: Language Guide: Functions: Function Types
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)
Riferimento: The Swift Programming Language: Language Guide: Functions: Function Argument Labels and Parameter Names
Encodable
e Decodable
Riferimenti:
let value1 = "\("test".count)"
String
Int
null
test.count
Riferimento: The Swift Programming Language: Language Guide: Strings and Characters: String Interpolation
Riferimento: The Swift Programming Language: Language Guide: Closures: Escaping Closures
class Person {
var name: String
var address: String
}
var name
non è formattato correttamente. address
è una parola chiave. Riferimento: The Swift Programming Language: Language Guide: Initialization: Class Inheritance and Initialization
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
Number
Int
Riferimento: The Swift Programming Language: Language Guide: The Basics: Type Safety and Type Inference
extension String {
var firstLetter: Character = "c" {
didSet {
print("new value")
}
}
}
didSet
richiede un parametro. c
non è un carattere. Riferimento: The Swift Programming Language: Language Guide: Extensions: Computed Properties
newOld
Riferimento: The Swift Programming Language: Language Guide: Properties