任意数据类型切片 golang
发布时间:2020-12-16 19:28:07 所属栏目:大数据 来源:网络整理
导读:package mainimport ("fmt". "strconv")type Element interface{}type List []Elementtype Person struct {name stringage int}func (P Person) String() string {return "My name is " + P.name + " my age is " + Itoa(P.age)}var slice_1 = []string{"hel
package main import ( "fmt" . "strconv" ) type Element interface{} type List []Element type Person struct { name string age int } func (P Person) String() string { return "My name is " + P.name + " my age is " + Itoa(P.age) } var slice_1 = []string{"hello"} var map_1 = map[string]string{"city": "beijing","name": "cs","from": "usa"} func main() { list := make(List,5) list[0] = 1 // an int list[1] = "Hello" // a string list[2] = Person{"barry",100} // struct list[3] = slice_1 // a slice list[4] = map_1 // a map for _,element := range list { switch v:=element.(type) { //v是具体的值对象了,而element还是interface对象 case int: fmt.Println(element,",int") case string: fmt.Println(element,string") case Person: fmt.Println(element,Person struct") default: fmt.Println(element,others like slice,map...") } } } 一般切片只能存放一种数据类型,但是有了interface可以高度抽象,让切片存放的数据类型任意! 下面是例子。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |