Como eu faço um literal * int64 no Go?
Eu tenho um tipo de estrutura com um*int64
campo.
type SomeType struct {
SomeField *int64
}
Em algum momento do meu código, quero declarar um literal disso (digamos, quando eu sei que o valor deve ser 0 ou apontando para 0, você sabe o que quero dizer)
instance := SomeType{
SomeField: &0,
}
... exceto que isso não funciona
./main.go:xx: cannot use &0 (type *int) as type *int64 in field value
Então eu tento isso
instance := SomeType{
SomeField: &int64(0),
}
... mas isso também não funciona
./main.go:xx: cannot take the address of int64(0)
Como eu faço isso? A única solução que posso encontrar é usar uma variável de espaço reservado
var placeholder int64
placeholder = 0
instance := SomeType{
SomeField: &placeholder,
}
Note o&0
a sintaxe funcionabem quando é um * int em vez de um*int64
. Edit: não, não. Desculpe por isto.
Editar:
Aparentemente, havia muita ambiguidade na minha pergunta. Estou procurando uma maneira deliteralmente declarar a *int64
. Isso pode ser usado dentro de um construtor, ou para declarar valores de estrutura literal, ou mesmo como argumentos para outras funções. Mas as funções auxiliares ou o uso de um tipo diferente não são soluções que estou procurando.