Nó tránh phải khai báo tất cả các biến cho giá trị trả về.
Nó được gọi là blank identifier.
Như trong:
_, y, _ := coord(p) // coord() returns three values; only interested in y coordinate
(các other '_
' use case is for import)
Vì nó loại bỏ các giá trị trả về, nó là hữu ích khi bạn muốn kiểm tra chỉ là một trong các giá trị trở lại, như trong "How to test key existence in a map?" thể hiện trong "Effective Go, map":
_, present := timeZone[tz]
để kiểm tra sự hiện diện trong bản đồ với lo lắng về giá trị thực tế, bạn có thể sử dụng số nhận dạng trống, dấu gạch dưới đơn giản (_
).
Mã định danh trống có thể được gán hoặc khai báo với bất kỳ giá trị nào thuộc loại nào, với giá trị bị loại bỏ vô hại.
Để kiểm tra sự hiện diện trong bản đồ, hãy sử dụng số nhận dạng trống thay cho biến thông thường cho giá trị.
Như Jsor thêm in the comments:
"tiêu chuẩn chung được chấp nhận" là để gọi các biến kiểm tra thành viên "ok" (tương tự để kiểm tra nếu đọc kênh là hợp lệ hay không)
Điều đó cho phép bạn kết hợp nó với thử nghiệm:
if _, err := os.Stat(path); os.IsNotExist(err) {
fmt.Printf("%s does not exist\n", path)
}
Bạn sẽ thấy nó cũng trong vòng lặp:
Nếu bạn chỉ cần mục thứ hai trong khoảng (giá trị), sử dụng định danh trống, một dấu gạch dưới, để loại bỏ các đầu tiên:
sum := 0
for _, value := range array {
sum += value
}
Đối với câu hỏi ngôn ngữ trong tương lai, xin vui lòng có một cái nhìn tại [đặc tả] (http: // golang. org/ref/spec) trước tiên. Nó sẽ trả lời tất cả các câu hỏi của bạn. – fuz
Là một nhận xét: 'prs' có thể là viết tắt của" hiện tại ". Mã trong ví dụ của bạn là kiểm tra sự hiện diện hoặc vắng mặt của một mục nhập cho '" example "' trong bản đồ 'm'. – dyoo
@FUZxxl Có, tôi đã có một cái nhìn ở đó trước đây, nhưng khi tôi không biết tên của các tính năng, tôi đã không tìm thấy nó. Ngoài ra tôi tìm thấy các thông số kỹ thuật chính thức cho các ngôn ngữ lập trình không phải là rất sư phạm và thay vì tìm hiểu bằng ví dụ. – Kansuler