no video o professor passou muito rápido nessa parte não consegui entender muiot bem, tem como algum instrutor ou aluno explicar melhor por aqui
no video o professor passou muito rápido nessa parte não consegui entender muiot bem, tem como algum instrutor ou aluno explicar melhor por aqui
Suponha o código onde tentamos converter de forma inocente um número para String:
let numero: Int = 10
let texto: String = numero as String
Veja que numero
é do tipo Int
, mas texto
é do tipo String
. Então para alterarmos o tipo do numero
, fazemos uma operação chamada casting. No Swift, o operador de casting é o as
.
No entanto, simplesmente trocar o tipo do numero
(de Int
para String
) não o converte propriamente para uma String e essa operação dará um erro. O importante aqui é: caso o casting dê erro (por usarmos tipos incompatíveis), o que queremos que aconteça?
Caso queiramos forçar o casting e em caso de erro quebre o app, podemos fazer:
let numero: Int = 10
let texto: String = numero as! String
Usando o as!
fazemos o force casting de numero
para String, porém, como os tipos são incompatíveis, esse código causará um erro ao ser executado.
Podemos ser mais cautelosos e em caso de erro no casting podemos receber nulo:
let numero: Int = 10
let texto: String? = numero as? String
Note que ao usar o operador as?
nos protegemos de um erro de tipagem incompatível, porém nosso texto
agora é do tipo String?
, significando que pode receber um valor nulo.