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)

}
相关推荐
CHQIUU1 分钟前
使用 CDN 在国内加载本地 PDF 文件并处理批注:PDF.js 5.x 实战指南
开发语言·javascript·pdf
咸鱼睡不醒_1 分钟前
SpringBoot项目接入DeepSeek
java·spring boot·后端
钢铁男儿6 分钟前
C# 方法(引用类型作为值参数顸引用参数)
开发语言·c#
明月看潮生8 分钟前
青少年编程与数学 02-019 Rust 编程基础 02课题、开始编程
开发语言·算法·青少年编程·rust·编程与数学
yuanManGan18 分钟前
C++入门小馆 :多态
开发语言·c++
坐吃山猪26 分钟前
Python-JsonRPC
开发语言·python
小毛驴85030 分钟前
Windows环境,Python实现对本机处于监听状态的端口,打印出端口,进程ID,程序名称
开发语言·windows·python
MyhEhud38 分钟前
Kotlin zip 函数的作用和使用场景
开发语言·windows·kotlin
火龙谷39 分钟前
【工具推荐】Code2Prompt
开发语言
code monkey.1 小时前
【探寻C++之旅】第十三章:红黑树
开发语言·数据结构·c++