go语言(十三)-----interface

一、Interface

通用万能类型

  1. 空接口
  2. int,string,float,struct都实现了interface
  3. 都可以用interface{}类型,引用任意的数据类型
go 复制代码
package main

import "fmt"

//interface()是万能数据类型
func myFunc(arg interface{}) {
	fmt.Println("myFunc  is  called...")
	fmt.Println(arg)

//给interface{}提供"类型断言"的机制
value, ok := arg.(string)
if !ok {
	fmt.Println("arg is not string type")
} else {
	fmt.Println("arg is string type,value = ",value)

	fmt.Printf("value type is %T\n",value)
}
}

type Book struct {
	auth string
}

func main() {
	book := Book{"Golang"}

	myFunc(book)
	myFunc(100)
	myFunc("abc")
	myFunc(3.14)

}
相关推荐
Felix_One2 分钟前
ESP32 + Qt 串口通信(一):从协议设计到双向数据链路
后端
用户377515412765 分钟前
用 AR 眼镜打造你的办公助手,使用 Unity 开发到 Rokid 部署全记录
后端
小码哥_常5 分钟前
Spring Boot文件访问安全:筑牢数据防线,让漏洞无处遁形
后端
初次攀爬者6 分钟前
BIO、NIO 和 AIO 基础介绍
后端
小码哥_常6 分钟前
告别繁琐try - catch!打造全局异常拦截的魔法城堡
后端
Hoffer_9 分钟前
MySQL 强制索引:USE/FORCE INDEX 用法与避坑
后端·mysql
Hoffer_11 分钟前
MySQL 索引核心操作:CREATE/DROP/SHOW
后端·mysql
神奇小汤圆13 分钟前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
后端
哈密瓜的眉毛美23 分钟前
零基础学Java|第八篇:面向对象编程的类与对象(基础)
后端
神奇小汤圆29 分钟前
架构师手记:彻底终结 Kafka 丢消息与重复消费的“核武器”
后端