No Swift 4.1, isso pode ser alcançado da seguinte maneira:
prefix operator ++
postfix operator ++
extension Int{
static prefix func ++(x: inout Int)->Int{
x += 1
return x
}
static postfix func ++(x: inout Int)->Int{
x += 1
return x-1
}
}
//example:
var t = 5
var s = t++
print("\(t) \(s)")
Observe que, apesar do fato de que esta solução é semelhante às soluções anteriores deste post, elas não funcionam mais no Swift 4.1 e este exemplo funciona. Observe também que quem menciona acima que + = é um substituto para ++ simplesmente não entende completamente o operador, pois ++ combinado com a atribuição é na verdade duas operações, portanto, um atalho. No meu exemplo:var s = t++
faz duas coisas: atribua o valor de t a se incremente t. Se o ++ vier antes, são as mesmas duas operações feitas em ordem inversa. Na minha opinião, o raciocínio da Apple sobre o motivo de remover esse operador (mencionado nas respostas anteriores) não é apenas um raciocínio falso, mas além disso acredito que é uma mentira e o verdadeiro motivo é que eles não conseguiram fazer com que o compilador lidasse com isso. Isso deu a eles problemas nas versões anteriores, então eles desistiram. A lógica do "operador muito complicado de entender, portanto removido" é obviamente uma mentira porque o Swift contém operadores muito mais complicados e muito menos úteis que não foram removidos. Além disso, a grande maioria das linguagens de programação possui. JavaScript, C, C #, Java, C ++ e muito mais. Os programadores o usam alegremente. Para quem é muito difícil entender esse operador,
A estratégia por trás do Swift é simples: a Apple acredita que o programador é burro e, portanto, deve ser tratado de acordo.
A verdade é que o Swift, lançado em setembro de 2014, deveria estar em outro lugar até agora. Outras línguas cresceram muito mais rapidamente.
Posso listar muitos erros importantes na linguagem, desde os graves: como arrays colados por valor e não por referência, até os irritantes: funções de parâmetros variados não podem aceitar um array, que é a idéia por trás dele. Não acho que os funcionários da Apple tenham permissão para procurar outras linguagens como Java, para que nem saibam que a Apple está anos-luz atrás. A Apple poderia ter adotado o Java como uma linguagem, mas atualmente, o desafio não é a tecnologia, mas o ego. Se eles tivessem aberto o IntelliJ para escrever um pouco de Java, certamente fechariam seus negócios, entendendo que, neste momento, eles não podem e nunca vão se atualizar.