Questions tagged [go-interface]

104 questions
307
votes
10 answers

Type converting slices of interfaces

I'm curious why Go does't implicitly convert []T to []interface{} when it will implicitly convert T to interface{}. Is there something non-trivial about this conversion that I'm missing? Example: func foo([]interface{}) { /* do something */…
danny
  • 10,103
  • 10
  • 50
  • 57
20
votes
3 answers

Interfaces and pointer receivers

I am newbie gopher and trying to get my head around the pointer receivers and interfaces. type Foo interface { foo() } type Bar struct {} func (b *Bar) foo() {} based on the above definitions.. --- Allowed --------- b := Bar{} b.foo() --- Not…
gopher
  • 201
  • 1
  • 2
  • 4
19
votes
1 answer

In Go, how do I check a value is of (any) pointer type?

I have a slice of interface{} and I need to check whether this slice contains pointer field values. Clarification example: var str *string s := "foo" str = &s var parms = []interface{}{"a",1233,"b",str} index :=…
Elad
  • 664
  • 1
  • 5
  • 14
12
votes
3 answers

How to keep code DRY in Golang

EDIT++: How to not to repeat my code in Go? type Animal interface { Kingdom() string Phylum() string Family() string } type Wolf struct {} type Tiger struct {} func (w Wolf) Kingdom() string {return "Animalia"} func (w Wolf) Phylum()…
I159
  • 29,741
  • 31
  • 97
  • 132
10
votes
4 answers

In Golang, how can a consumer define an interface for a function that accepts an interface?

If I understand Go practices correctly, callers (aka consumers) are supposed to define interfaces of what they want to use from their dependencies (aka producers). However, if the producer has a function that accepts a custom type, then it's better…
Max Chernyak
  • 37,015
  • 6
  • 38
  • 43
9
votes
4 answers

Empty Interfaces in Golang

Edit: This is not the right way to use interfaces in Go. The purpose of this question is for me to understand how empty interfaces work in Go. If all types in Go implement interface{} (empty interface), why can't I access the name field in the Cat…
Eug
  • 165
  • 1
  • 2
  • 11
9
votes
1 answer

Convert Json.Number into int/int64/float64 in golang

I have a variable data, which is an interface. When I print its type I get it as json.Number. How do I type cast to int/int64/float64 If I try data.(float64), it ends up with panic error panic: interface conversion: interface {} is json.Number, not…
KuZon
  • 135
  • 1
  • 1
  • 6
8
votes
1 answer

Understanding interface inside interface(Embedded Interface)

I was trying to understand the Interface embedding with the following code. I have the following: type MyprojectV1alpha1Interface interface { RESTClient() rest.Interface SamplesGetter } // SamplesGetter has a method to return a…
Invictus
  • 2,653
  • 8
  • 31
  • 50
7
votes
1 answer

How can I implement comparable interface in go?

I've recently started studying Go and faced next issue. I want to implement Comparable interface. I have next code: type Comparable interface { compare(Comparable) int } type T struct { value int } func (item T) compare(other T) int { if…
Orest
  • 6,548
  • 10
  • 54
  • 84
6
votes
2 answers

Go interface return type

I have an interface like this: type ViewInterface interface{ Init() View } type View struct{ Width int Height int } So I create a new type from View type MainView View func (m MainView) Init() MainView{ return MainView{ …
Saeed M.
  • 2,216
  • 4
  • 23
  • 47
5
votes
2 answers

How to unite two different struct using interface?

I have the following code: package main import ( "log" ) type Data struct { Id int Name string } type DataError struct { Message string ErrorCode string } func main() { response := Data{Id: 100, Name: `Name`} if true…
tsg
  • 465
  • 5
  • 16
5
votes
5 answers

Modeling a hierarchy of related things without language support for type hierarchies

I'm new to Go, and one of the first things I want to do is to port my little marked-up-page-generation library to Go. The primary implementation is in Ruby, and it is very much "classical object orientation" in its design (at least as I understand…
Darshan Rivka Whittle
  • 32,989
  • 7
  • 91
  • 109
4
votes
2 answers

Constructor method in Interface? (in Golang)

If I have the following interface and struct: package shape type Shape interface { Area() } type Rectangle struct { } func (this *Rectangle) Area() {} func New() Shape { return &Rectangle{} } Then how can I add the New() method (as a…
lazywei
  • 11,955
  • 5
  • 20
  • 25
3
votes
1 answer

Golang map with any key type and any value type

can i create in golang a map with any key type and any value type ? , something like : dict1 := map[interface]interface{} Thanks a lot !
Edgar
  • 43
  • 1
  • 4
3
votes
2 answers

Is it possible to cast map[string]string to map[string]interface{} without using for loop in golang?

When I try to convert map[string]string object to map[string]interface{} in golang using following snippet, I get an error. package main import "fmt" func main() { var m = make(map[string]string) m["a"] = "b" m1 :=…
Ruchit Patel
  • 733
  • 1
  • 11
  • 26
1
2 3 4 5 6 7