Para reescrever operadores em Swift é bem simples: basta criar uma função estática com o "nome do operador", seus parâmetros e seu retorno (por exemplo, se for o operador ==, tenho dois parâmetros para comparar e um retorno do tipo booleano):
//Estrutura que guarda os dados de uma pessoa
struct Pessoa {
//Nome da pessoa
var nome: String
//Idade da pessoa
var idade: Int
//Reescrevendo o operador ==
static func ==(_ first: Pessoa, _ second:Pessoa) -> Bool {
//Comparo o nome e a idade, se os dois forem iguais, retorno true, senão, retorno false
return first.nome == second.nome && first.idade == second.idade
}
}
//Crio os dados de uma pessoa
let pessoa1 = Pessoa(nome: "Ricardo Takemura", idade: Int.max)
//Crio os mesmos dados (em outro objeto)
let pessoa2 = Pessoa(nome: "Ricardo Takemura", idade: Int.max)
//Comparo um com o outro, se for igual exibo "{dado1} é igual que {dado2}" senão "{dado1} é diferente que {dado2}"
print("\(pessoa1) é \(pessoa1 == pessoa2 ? "igual" : "diferente") que \(pessoa2)")
Legal, não?
Até mais!
Nenhum comentário:
Postar um comentário