Hàm
Hoán đổi biến
Hoán đổi hai biến bằng array destructuring trong Node.js so với destructuring assignment trong Rust, hàm `swap` trong Swift, gán nhiều biến trong Go và biến tạm trong Java.
- Phiên bản tối thiểu
- Node.js ≥ 12.20Go ≥ 1.0Rust ≥ 1.59Swift ≥ 2.0Java ≥ 25
- Đã chạy thử trên
- Node.js 24.12.0Go 1.27.1Rust 1.98.1Swift 6.2.4Java 25.0.4.1
Code Node.js là ES module: lưu file .mjs hoặc đặt "type": "module" trong package.json.
Node.js hoán đổi hai biến bằng array destructuring, không cần biến tạm. Go làm y hệt bằng gán nhiều biến cùng lúc — cũng không cần biến tạm. Rust từ bản 1.59 có destructuring assignment cho tuple ((b, a) = (a, b)), cùng ý tưởng. Swift có sẵn hàm swap(&a, &b) trong thư viện chuẩn. Java không có cú pháp nào cho việc này — vẫn phải dùng biến tạm.
Hoán đổi hai biến
let a = 'foo';
let b = 'bar';
console.log(a, b); // foo bar
[b, a] = [a, b];
console.log(a, b); // bar foopackage main
import "fmt"
func main() {
a := "foo"
b := "bar"
fmt.Println(a, b) // foo bar
b, a = a, b
fmt.Println(a, b) // bar foo
}fn main() {
let mut a = "foo";
let mut b = "bar";
println!("{a} {b}"); // foo bar
(b, a) = (a, b); // destructuring assignment, không cần `let`
println!("{a} {b}"); // bar foo
}var a = "foo"
var b = "bar"
print(a, b) // foo bar
swap(&a, &b) // hàm swap có sẵn trong thư viện chuẩn
print(a, b) // bar foovoid main() {
String a = "foo";
String b = "bar";
IO.println(a + " " + b); // foo bar
// không có destructuring assignment: vẫn cần biến tạm
String temp = a;
a = b;
b = temp;
IO.println(a + " " + b); // bar foo
}Tham khảo: github.com/miguelmota/golang-for-nodejs-developers#swapping