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