2015-06-06 15 views
64
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 về chức năng của nội dung trong backtick, như json:"gateway".Việc sử dụng backtick trong định nghĩa golang là gì?

Chỉ là nhận xét, như //this is the gateway?

Trả lời

35

Bạn có thể thêm thông tin meta bổ sung vào cấu trúc Go theo dạng thẻ. Here are some examples of use cases.

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

Ví dụ:

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

Họ là tags:

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

// 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 this question and answer cho một lời giải thích chi tiết hơn và trả lời.

Các back quotes được sử dụng để tạo ra xâu liệu có thể chứa bất kỳ loại nhân vật:

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

+4

Cảm ơn bạn đã giải thích lại báo giá. – Ben

Các vấn đề liên quan