Então, por exemplo, este código:
func trigramSimilarity(to other: Set<String>) -> Double {
let selfTrigram = trigrams()
let total = selfTrigram.union(other)
let common = selfTrigram.intersection(other)
return total.isEmpty ? 0 : Double(common.count) / Double(total.count)
}
Espero que o compilador se transforme em
func trigramSimilarity(to other: Set<String>) -> Double {
let selfTrigram = trigrams()
let total = selfTrigram.union(other)
return total.isEmpty ? 0 : Double(selfTrigram.intersection(other).count) / Double(total.count)
}
Percebendo que let common
não é necessário que total.isEmpty
o compilador Swift me permita escrever código mais simples, mas evite cálculos desnecessários.
Mas é mais seguro ser simplesmente explícito?