Articles of ir

Como eu faço um literal * int64 no Go?

Eu tenho um tipo de estrutura com um campo *int64 . type SomeType struct { SomeField *int64 } Em algum momento do meu código, eu quero declarar um literal disso (digamos, quando eu sei que o valor deve ser 0, ou apontando para um 0, você sabe o que eu quero dizer) instance := SomeType{ […]

String de data de análise em golang

Tentei analisar a sequência de datas “2014-09-12T11: 45: 26.371Z” em go lang. Código layout := “2014-09-12T11:45:26.371Z” str := “2014-11-12T11:45:26.371Z” err, t := time.Parse(layout , str) tempo de análise “2014-11-12T11: 47: 39.489Z”: mês fora do intervalo Eu tenho esse erro. Como analisar essa string de data?

Minhas estruturas não estão se organizando em json

Estou usando o Go 1.0.3 no Mac OS X 10.8.2, e estou experimentando o pacote json , tentando empacotar uma estrutura para json, mas continuo recebendo um {} object json vazio. O valor err é nulo, então nada está errado de acordo com a function json.Marshal , e a estrutura está correta. Por que isso […]

O que significa um sublinhado e um nome de interface após a palavra-chave var mean?

Em http://golang.org/src/pkg/database/sql/driver/types.go : type ValueConverter interface { // ConvertValue converts a value to a driver Value. ConvertValue(v interface{}) (Value, error) } var Bool boolType type boolType struct{} var _ ValueConverter = boolType{} // line 58 func (boolType) String() string { return “Bool” } func (boolType) ConvertValue(src interface{}) (Value, error) {….} Eu sabia que o ValueConverter […]

JSON e lidando com campos não exportados

Existe uma razão técnica pela qual os campos não exportados não são incluídos pela codificação / json? Se não, e é uma decisão arbitrária, pode haver uma opção adicional de porta traseira (digamos ‘+’) para include, mesmo que não seja exportada? Exigir que o código do cliente para exportar para obter essa funcionalidade pareça lamentável, […]

json.Marshal (struct) retorna “{}”

type TestObject struct { kind string `json:”kind”` id string `json:”id, omitempty”` name string `json:”name”` email string `json:”email”` } func TestCreateSingleItemResponse(t *testing.T) { testObject := new(TestObject) testObject.kind = “TestObject” testObject.id = “f73h5jf8” testObject.name = “Yuri Gagarin” testObject.email = “Yuri.Gagarin@Vostok.com” fmt.Println(testObject) b, err := json.Marshal(testObject) if err != nil { fmt.Println(err) } fmt.Println(string(b[:])) } Aqui está a […]

Qual o significado da interface {}?

Eu sou novo em interfaces e tentando fazer uma requisição SOAP pelo github Eu não entendo o significado de Msg interface{} neste código: type Envelope struct { Body `xml:”soap:”` } type Body struct { Msg interface{} } Eu observei a mesma syntax fmt.Println mas não entendo o que está sendo alcançado interface{}

Escondendo valores nulos, entendendo porque o golang falha aqui

Eu não consigo entender como garantir corretamente que algo não é nil neste caso: package main type shower interface { getWater() []shower } type display struct { SubDisplay *display } func (d display) getWater() []shower { return []shower{display{}, d.SubDisplay} } func main() { // SubDisplay will be initialized with null s := display{} // water […]

Digite convertendo fatias de interfaces em go

Estou curioso para saber por que não implicitamente converter []T para []interface{} quando implicitamente converter T para interface{} . Existe algo não trivial sobre essa conversão que estou perdendo? Exemplo: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{“hello”, “world”} foo(a) } go build reclama não pode usar […]

Ponteiros vs. valores em parâmetros e valores de retorno

Em Go, existem várias maneiras de retornar um valor struct ou uma fatia dele. Para os indivíduos que eu vi: type MyStruct struct { Val int } func myfunc() MyStruct { return MyStruct{Val: 1} } func myfunc() *MyStruct { return &MyStruct{} } func myfunc(s *MyStruct) { s.Val = 1 } Eu entendo as diferenças entre […]