Cơ bản
Comment
Comment dòng (`//`) và khối (`/* */`) dùng chung một cú pháp ở cả năm ngôn ngữ — khác biệt duy nhất nằm ở quy ước viết doc comment.
- Phiên bản tối thiểu
- Node.js ≥ 12.20Go ≥ 1.0Rust ≥ 1.58Swift ≥ 5.1Java ≥ 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, Go, Rust, Swift và Java dùng chung một cú pháp comment: // cho một dòng, /* ... */ cho một khối nhiều dòng (Rust và Swift còn cho phép lồng comment khối, khác với JS/Go/Java). Không có gì lạ để học ở đây — khác biệt thật sự chỉ lộ ra khi comment đứng ngay trước một khai báo và trở thành doc comment: JSDoc ở Node.js, godoc ở Go, rustdoc ở Rust, doc comment ở Swift, Javadoc ở Java.
Comment dòng và khối
// đây là một comment dòng
/*
đây là một comment khối
*/package main
func main() {
// đây là một comment dòng
/*
đây là một comment khối
*/
}fn main() {
// đây là một comment dòng
/*
đây là một comment khối
*/
}// đây là một comment dòng
/*
đây là một comment khối
*/void main() {
// đây là một comment dòng
/*
đây là một comment khối
*/
}Doc comment: JSDoc, godoc, rustdoc, Swift, Javadoc
/**
* Trả về lời chào cho một cái tên.
* @param {string} name
* @returns {string}
*/
function greet(name) {
return `Hello, ${name}!`
}
console.log(greet('Go')) // Hello, Go!package main
import "fmt"
// Greet trả về lời chào cho một cái tên.
func Greet(name string) string {
return "Hello, " + name + "!"
}
func main() {
fmt.Println(Greet("Go")) // Hello, Go!
}/// Trả về lời chào cho một cái tên.
fn greet(name: &str) -> String {
format!("Hello, {name}!")
}
fn main() {
println!("{}", greet("Go")); // Hello, Go!
}/// Trả về lời chào cho một cái tên.
/// - Parameter name: tên cần chào.
/// - Returns: chuỗi lời chào.
func greet(_ name: String) -> String {
"Hello, \(name)!"
}
print(greet("Go")) // Hello, Go!/**
* Trả về lời chào cho một cái tên.
*
* @param name tên cần chào
* @return chuỗi lời chào
*/
String greet(String name) {
return "Hello, " + name + "!";
}
void main() {
IO.println(greet("Go")); // Hello, Go!
}Doc comment ở Go phải bắt đầu bằng đúng tên định danh nó mô tả (Greet returns...) để go doc/godoc và các IDE nhận diện đúng; JSDoc dùng khối /** ... */ với tag @param/@returns để công cụ như VS Code hay TypeScript suy luận kiểu và hiện gợi ý. rustdoc (///) không bắt buộc phải bắt đầu bằng tên hàm như Go, và render Markdown thật sự (kể cả doctest có thể chạy được). Swift dùng /// với các marker - Parameter/- Returns để Xcode/DocC hiển thị Quick Help. Javadoc dùng /** ... */ với tag @param/@return, kể cả với các phương thức top-level trong compact source file của Java 25.
Tham khảo: github.com/miguelmota/golang-for-nodejs-developers#comments