Câu hỏi Việc sử dụng backtick trong định nghĩa golang là gì? [bản sao]


Câu hỏi này đã có câu trả lời ở đây:

type NetworkInterface struct {
    Gateway              string `json:"gateway"`
    IPAddress            string `json:"ip"`
    IPPrefixLen          int    `json:"ip_prefix_len"`
    MacAddress           string `json:"mac"`
    ...
}

Tôi khá bối rối chức năng của nội dung trong backtick, như json:"gateway".

Nó chỉ là bình luận, như //this is the gateway?


76
2018-06-06 09:15


gốc




Các câu trả lời:


Bạn có thể thêm thông tin meta bổ sung vào cấu trúc Go theo dạng thẻ. Dưới đây là một số ví dụ về trường hợp sử dụng.

Trong trường hợp này, json:"gateway" được sử dụng bởi gói json để mã hóa giá trị của Gateway vào chìa khóa gateway trong đối tượng json tương ứng.

Thí dụ:

n := NetworkInterface{
   Gateway : "foo"
}
json.Marshal(n)
// will output `{"gateway":"foo",...}`

42
2018-06-06 09:23





họ đang thẻ:

Một khai báo lĩnh vực có thể được theo sau bởi một thẻ chữ chuỗi tùy chọn,   trở thành thuộc tính cho tất cả các trường trong tương ứng   khai báo trường. Các thẻ được hiển thị thông qua phản chiếu   giao diện và tham gia vào danh tính loại cho cấu trúc nhưng nếu không thì   làm ngơ.

// A struct corresponding to the TimeStamp protocol buffer.
// The tag strings define the protocol buffer field numbers.
struct {
  microsec  uint64 "field 1"
  serverIP6 uint64 "field 2"
  process   string "field 3"
}

Xem câu hỏi và câu trả lời này để có giải thích và câu trả lời chi tiết hơn.

Các dấu ngoặc kép được sử dụng để tạo các chuỗi ký tự thô có thể chứa bất kỳ loại ký tự nào:

Chuỗi ký tự chuỗi thô là chuỗi ký tự giữa các dấu ngoặc kép ``.   Trong dấu ngoặc kép, bất kỳ ký tự nào là hợp pháp ngoại trừ báo giá sau.


49
2018-06-06 09:23



Cảm ơn bạn đã giải thích trích dẫn trở lại. - Benjamin