Has golang a type of data to save different data types? Like arrays in Python where u can save strings and integers in one array.
As long as all types adhere to the same interface, you can use a slice of the interface type.
1 Like
The Go Programming Language Specification
Interface types
all types implement the empty interface
“all types adhere to the same interface” is trivially true for any type.
package main
import "fmt"
func main() {
var py []interface{}
py = append(py, 42)
py = append(py, "forty-two")
fmt.Println(py)
py0, ok := py[0].(int)
if ok {
fmt.Println(py0)
}
py1, ok := py[1].(string)
if ok {
fmt.Println(py1)
}
}
https://play.golang.org/p/1bB0V8Pnztc
[42 forty-two]
42
forty-two
Yeah, though interface{}
is nothing you could take much value from…
You can not do anything with the empty interface. A []Foo
might be easier to deal with, as you do not need to do any type assertions.
Though if you want to have primitivs in the slice, there is sadly no way around interface{}
and type assertions.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.