C
// basic
tmp = x;
x = y;
y = tmp;

// function
void swap(int *a, int *b) {
  int tmp;
  tmp = *b;
  *b = *a;
  *a = tmp;
}
swap(&x, &y);

// no temporary variable
x = x + y;
y = x - y;
x = x - y;

// no temporary variable 2
x = x ^ y;
y = x ^ y;
x = x ^ y;
C++
swap(x, y);
CoffeeScript
[x, y] = [y, x]
Java
tmp = x;
x = y;
y = tmp;
JavaScript
// basic
tmp = x;
x = y;
y = tmp;

// tricky one-line
x = [y, y = x][0];

// ES2015 (ES6)
[x, y] = [y, x]
Kotlin
tmp = x
x = y
y = tmp
Lua
x, y = y, x
Objective-C
tmp = x;
x = y;
y = tmp;
Perl
($x, $y) = ($y, $x);
PHP
// basic
list($x, $y) = array($y, $x);

// function
function swap(&$x, &$y) {
  $tmp = $x;
  $x = $y;
  $y = $tmp;
}
Python
x, y = y, x
Ruby
x, y = y, x
Swift
swap(&x, &y)


comments powered by Disqus