• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

77_Go基础_1_45空接口

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 package main
 2 
 3 import "fmt"
 4 
 5 // 空接口
 6 type A interface{}
 7 
 8 type Cat struct {
 9     color string
10 }
11 
12 type Person struct {
13     name string
14     age  int
15 }
16 
17 // 接口A是空接口,理解为代表了任意类型
18 func test1(a A) {
19     fmt.Println(a)
20 }
21 
22 func test2(a interface{}) {
23     fmt.Println("--->", a)
24 }
25 
26 func test3(slice2 []interface{}) {
27     for i := 0; i < len(slice2); i++ {
28         fmt.Printf("第%d个数据:%v\n", i+1, slice2[i])
29     }
30 }
31 
32 func main() {
33     /*
34         空接口(interface{})
35             不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值。
36 
37         fmt包下的Print系列函数:
38             func Print(a ...interface{}) (n int, err error)
39             func Printf(format string, a ...interface{}) (n int, err error)
40             func Println(a ...interface{}) (n int, err error)
41     */
42 
43     var a1 A = Cat{"花猫"}
44     var a2 A = Person{"王二狗", 30}
45     var a3 A = "haha"
46     var a4 A = 100
47     fmt.Println(a1) // {花猫}
48     fmt.Println(a2) // {王二狗 30}
49     fmt.Println(a3) // haha
50     fmt.Println(a4) // 100
51 
52     test1(a1)     // {花猫}
53     test1(a2)     // {王二狗 30}
54     test1(3.14)   // 3.14
55     test1("Ruby") // Ruby
56 
57     test2(a3)   // ---> haha
58     test2(1000) // ---> 1000
59 
60     // map,key字符串,value任意类型
61     map1 := make(map[string]interface{})
62     map1["name"] = "李小花"
63     map1["age"] = 30
64     map1["friend"] = Person{"Jerry", 18}
65     fmt.Println(map1) // map[age:30 friend:{Jerry 18} name:李小花]
66 
67     // 切片,存储任意类型的数据
68     slice1 := make([]interface{}, 0, 10)
69     slice1 = append(slice1, a1, a2, a3, a4, 100, "abc")
70     fmt.Println(slice1) // [{花猫} {王二狗 30} haha 100 100 abc]
71     test3(slice1)
72 
73 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
GoLangRedis数据库操作指令&go连接redis操作指令发布时间:2022-07-10
下一篇:
Go 调试发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap