Questo è un codice valido Swift:Swift nil ha un valore numerico?
println(nil < 1)
E l'uscita sarà vero, allo stesso modo
println(nil > 1)
sarà falsa (il numero 1 è arbitrario, si può fare lo stesso per -1 e probabilmente qualcos'altro). Il motivo per cui lo chiedo è perché ho visto un codice che ha provato a confrontare "some_string".toInt()
con un valore numerico e lo ha compilato, il che sembra sbagliato considerando toInt()
restituisce Int?
.
La mia domanda è, dovrebbe essere sintassi valida in Swift? In tal caso, qual è il valore numerico di nil?
Swift 3.0 Update:
Sembra Swift Evolution affrontato questo problema removing the optional comparison operators. Questo non è più un problema in Swift 3.0 in quanto non viene compilato.
questo mi sembra un insetto. –
'Int.min as Int? > nil' '$ R14: Bool = true', forse è inteso per consentire il confronto di due' Int? 'e' Int.min> nil' fornisce l'errore di compilazione –
@BryanChen È sicuramente interessante. Direi sicuramente un bug in questo contesto, ma mi piacerebbe davvero sapere come sta arrivando a questa conclusione. –