加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

任意数据类型切片 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可以高度抽象,让切片存放的数据类型任意!

下面是例子。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读