Trocar o valor de duas variáveis sem usar uma variável auxiliar
Pense na situação em que precisamos que o valor da variável a seja passado para variável b, mas não temos disponível uma terceira variável para guardar o valor temporariamente e realizar a troca! E então como fazemos isso? A resposta é matemática.
Trocando o valor de duas variáveis usando JavaScript (como exemplo)
let a = 10
let b = 2.5
a = a + b
b = a - b
a = a - b
console.log(`a = ${} \n b = ${b} `)
Nota:
Este é um algoritmo encontrado normalmente no meio académico e em concursos de algoritmos e lógica de programação que estou acostumado a participar.
Nem toda linguagem de programação possui esse tipo de operação. Acredito que JS não tenha.
Veja esses exemplos em Kotlin, onde isso é possível.
Código mais "convencional" em Kotlin de como fazer swap de variável:
var temp = a;
a = b;
b = temp;
Outras alternativas:
b = a.apply {a = b}
b = a.also {a = b}
Lembrando que os nomes a
e b
foram colocados apenas como exemplo para deixá-los mais genéricos. Em um código real, o ideal é dar nomes mais descritivos.
Achei excessivamente complexo para algo simples, já que é difícil entender o que esse trecho de código faz sem realizar um "teste de mesa", mas é um jeito interessante de pensar.
SkeBug, aproveitei para editar a sua publicação porque a primeira linha do código não estava aparecendo, e coloquei um destaque para o código como javascript
. Recomendo que clique em Editar para ver como ficou, e dê uma lida em [DICA]: Como escrever artigos no TabNews., na seção de Código, ou use a ajuda do editor conforme mostrado aqui.
Não tenho certeza neste caso, mas trabalhar com operações aritméticas com floats pode ser um pouco complexo e talvez não trará o resultado experado.
Aqui temos alguns detalhes sobre.
Digamos que este não é um problema comum e apesas da proposta ser interessante não acho que resolve uma dor latente para a maior parte dos devs.
Voce teria um exemplo de caso real @SkeBug?