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)

}
相关推荐
渣哥1 分钟前
从构造器注入到 setter:Spring 循环依赖的常见场景解析
javascript·后端·面试
lly20240611 分钟前
Docker 安装 Node.js
开发语言
明天会有多晴朗16 分钟前
C语言入门教程(第6讲):函数——让程序学会“分工合作”的魔法
c语言·开发语言·算法
泽虞21 分钟前
《Qt应用开发》笔记p3
linux·开发语言·数据库·c++·笔记·qt·面试
晓风残月淡21 分钟前
JVM字节码与类的加载(一):类的加载过程详解
开发语言·jvm·python
XXYBMOOO24 分钟前
如何自定义 Qt 日志处理并记录日志到文件
开发语言·数据库·qt
知南x28 分钟前
【QT界面设计学习篇】qt快速开发技巧
开发语言·qt
hqyjzsb31 分钟前
2025 年项目管理转型白皮书:AI 驱动下的能力重构与跨域突破
开发语言·人工智能·重构·产品经理·编程语言·caie
奶茶树43 分钟前
【C++】12.多态(超详解)
开发语言·c++
草莓熊Lotso44 分钟前
《算法闯关指南:优选算法--二分查找》--17.二分查找(附二分查找算法简介),18. 在排序数组中查找元素的第一个和最后一个位置
开发语言·c++·算法