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)

}
相关推荐
零雲15 小时前
Java面试:@Component和@Bean的区别是什么
java·开发语言·面试
Thomas游戏开发16 小时前
Unity3D IL2CPP如何调用Burst
前端·后端·架构
Jerry404_NotFound16 小时前
工厂方法模式
java·开发语言·jvm·工厂方法模式
微风欲寻竹影16 小时前
深入理解Java中的String
java·开发语言
货拉拉技术16 小时前
货拉拉离线大数据迁移-验数篇
后端·架构
用户68026590511916 小时前
如何利用 Endpoint Central 提高企业终端管理效率
javascript·后端·面试
代码or搬砖16 小时前
TransactionManager 详解、常见问题、解决方法
java·开发语言·spring
程序员佳佳16 小时前
文章标题:彻底抛弃OpenAI官方Key?实测GPT-5.2与Banana Pro(Gemini 3):这才是开发者的终极红利!
开发语言·人工智能·python·gpt·ai作画·api·midjourney
挖矿大亨16 小时前
C++中左移运算符重载
开发语言·c++
廋到被风吹走16 小时前
【Spring】Spring Context 详细介绍
java·后端·spring