SORU
2 HAZİRAN 2012, CUMARTESİ


Git kullanımı(s) etiketleri nedir?

Go Language Specification etiketleri kısa bir bakış bahseder -

Alan bir bildiri isteğe bağlı dize bir etiket,takip edebilir hangi ilgili tüm alanları için bir öznitelik olur alan beyannamesi. Etiketleri görünür bir yansıması ile yapılır arayüz ama aksi takdirde göz ardı edilir.

// 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"
}

Bu çok kısa bir açıklama IMO, ve eğer biri bu etiketler ne olacağı ile sağlamak beni acaba?

CEVAP
2 HAZİRAN 2012, CUMARTESİ


Burada etiketler alanlar kodlama ve kod çözme sırasında nasıl yorumlandığını kontrol encoding/json paketi ile kullanılan çok basit bir örnek:

Deneyin: http://play.golang.org/p/BMeR8p1cKf

package main

import (
    "fmt"
    "encoding/json"
)

type Person struct {
    FirstName    string    `json:"first_name"`
    LastName     string    `json:"last_name"`
    MiddleName   string    `json:"middle_name,omitempty"`
}

func main() {
    json_string := `
    {
        "first_name": "John",
        "last_name": "Smith"
    }`

    person := new(Person)
    json.Unmarshal([]byte(json_string), person)
    fmt.Println(person)

    new_json, _ := json.Marshal(person)
    fmt.Printf("%s\n", new_json)
}
// *Output*
// &{John Smith }
// {"first_name":"John","last_name":"Smith"}

Json paketi alan etiketlere bak ve göster json < nasıl söylenmesi;=>alan yapı, ve aynı zamanda ekstra seçenek geri json seri hale getirilirken için boş alanları görmezden gerekip gerekmediği gibi.

Temel olarak, herhangi bir paket alanlara yansıması etiket değerlerine bakmak için kullanın ve bu değerlere göre hareket edebilir. Paket yansıtacak şekilde onlar hakkında biraz daha fazla bilgi var
http://golang.org/pkg/reflect/#StructTag :

Kongre tarafından, etiketi dizeleri isteğe bağlı olarak bir birleştirme vardır boşluk ile ayrılmış anahtar: değer çiftleri. Her anahtar, boş olmayan bir dize. -kontrol dışı karakterleri alanı dışında oluşan (U 0020')', (U 0022"') ve kolon (U 003A ':'). ' alıntı Her değeri kullanarak alıntı U 0022"' karakter ve dize sözdizimi.'

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • bigky226

    bigky226

    11 HAZİRAN 2006
  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013