Cơ bản
Nội suy chuỗi
Template literal (`${}`) của JavaScript so với fmt.Sprintf (Go), format!/println! (Rust), string interpolation (Swift) và String.formatted (Java).
- Phiên bản tối thiểu
- Node.js ≥ 12.20Go ≥ 1.0Rust ≥ 1.58Swift ≥ 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.
JavaScript có cú pháp nội suy chuỗi ngay trong ngôn ngữ bằng template literal (chuỗi bọc dấu backtick). Go không có cú pháp riêng cho việc này — bạn dùng fmt.Sprintf với các format verb (%s, %d, …), giống printf của C. Swift có nội suy chuỗi thật trong ngôn ngữ: \(...) chấp nhận bất kỳ biểu thức nào. Rust thì khác: format!/println! chỉ là macro của thư viện chuẩn (std), không phải cú pháp lõi của ngôn ngữ; từ Rust 1.58 nó cho phép "capture" trực tiếp một identifier đơn giản đang có sẵn trong scope ({name}), nhưng không chấp nhận biểu thức hay truy cập field bên trong dấu ngoặc — {user.name} hay {a + b} đều không biên dịch, phải gán ra biến cục bộ trước hoặc dùng đối số vị trí/đặt tên (format!("{}", user.name)). Java thì không có nội suy chuỗi — kể cả String Templates từng được preview ở Java 21/22 rồi bị rút lại — nên vẫn phải dùng String.format/.formatted() kiểu printf, giống Go.
Nội suy chuỗi
const name = 'bob'
const age = 21
const message = `${name} is ${age} years old`
console.log(message)package main
import "fmt"
func main() {
name := "bob"
age := 21
message := fmt.Sprintf("%s is %d years old", name, age)
fmt.Println(message)
}fn main() {
let name = "bob";
let age = 21;
let message = format!("{name} is {age} years old"); // nội suy identifier trực tiếp trong chuỗi
println!("{message}");
}let name = "bob"
let age = 21
let message = "\(name) is \(age) years old"
print(message)void main() {
String name = "bob";
int age = 21;
String message = "%s is %d years old".formatted(name, age); // không có nội suy chuỗi
IO.println(message);
}bob is 21 years oldTham khảo: github.com/miguelmota/golang-for-nodejs-developers#interpolation