2013-04-20 14 views
6

Próbuję użyć „AppEngine/memcache” do przechowywania danych w pamięci podręcznej, memcache.Item za Wartość pole jest [] bajtGo: jak przekonwertować struct na [] byte?

Jak przekonwertować struct na [] bajt na przechowywanie go?

na przykład:

type Link struct { 
    Files []string 
} 

Odpowiedz

9

Zobacz typ memcache.Codec, można go użyć do konwersji elementów memcache. Pakiet appengine/memcache ma już przygotowane dwa kodeki, memcache.Gob i memcache.JSON. Używasz tych kodeków zamiast bezpośredniego wywołania do przechowywania i pobierania elementów z pamięci podręcznej, na przykład dla pozycji zakodowanej z gkiem:

item := &memcache.Item{ 
     Key: myCacheKey, 
     Object: &myLinkVar, 
    } 
    err := memcache.Gob.Set(context, item) 
+0

Co to jest "kontekst" w tym przykładzie? –

2

Pakiet encoding/gob jest chyba najlepszym rozwiązaniem.

Można również użyć pakietu encoding/json.

Jeśli używasz encoding/json, możesz odczytywać wartości z języków innych niż Go.

Jeśli używasz encoding/gob, uzyskasz większą prędkość.

Powiązane problemy