L'utilizzo di let _ = ...
non ha alcun scopo?Does "let _ = ..." (let underscore equal) ha qualche utilità in Swift?
Ho visto domande e risposte per What's the _ underscore representative of in Swift References? e so che il trattino di sottolineatura can be used to represent a variable that isn't needed.
Questo avrebbe senso se avevo bisogno di un solo valore di una tupla come nell'esempio dal link qui sopra:
let (result, _) = someFunctionThatReturnsATuple()
Tuttavia, ho recentemente imbattuto this code:
do {
let _ = try DB.run(table.create(ifNotExists: true) {t in
t.column(teamId, primaryKey: true)
t.column(city)
t.column(nickName)
t.column(abbreviation)
})
} catch _ {
// Error throw if table already exists
}
I don ottenere eventuali avvisi o errori del compilatore se rimuovo semplicemente lo let _ =
. Mi sembra che questo sia più semplice e più leggibile.
try DB.run(table.create(ifNotExists: true) {t in
t.column(teamId, primaryKey: true)
t.column(city)
t.column(nickName)
t.column(abbreviation)
})
L'autore del codice ha scritto a book and a blog about Swift. So che gli autori non sono infallibili, ma mi chiedo se c'è qualcosa che mi manca.
Ecco un esempio in cui è necessario assegnare a '_' per evitare un avvertimento del compilatore su un risultato non utilizzato: http: // stackoverflow. COM/a/32788209/1187415. –
Insomma, 'let _ =' rende esplicitamente chiaro che il programmatore vuole ignorare il risultato della chiamata al metodo. – Sulthan
Il 'let' sembra essere opzionale quando si assegna a' _'. L'autore del blog fa entrambe le cose. – vacawama