golang之interface

简介: 一、interface 1 package main 2 3 import "fmt" 4 5 type USB interface { 6 Name() string 7 Connect() 8 } 9 10 type PhoneConnecter str...

一、interface

 1 package main
 2 
 3 import "fmt"
 4 
 5 type USB interface {
 6     Name() string
 7     Connect()
 8 }
 9 
10 type PhoneConnecter struct {
11     name string
12 }
13 
14 func (pc PhoneConnecter) Name() string {
15     return pc.name
16 }
17 
18 func (pc PhoneConnecter) Connect() {
19     fmt.Println(pc.name)
20 }
21 
22 func main() {
23     var a USB 
24     // 将结构体实例赋值给interface
25     // interface的value为PhoneConnecter的实例
26     a = PhoneConnecter{"PhoneConnecter"}
27     a.Connect()
28     DisConnect(a)
29     DisConnect2(a)
30 }
31 
32 func DisConnect(usb USB) {
33     fmt.Println("DisConnect")
34     if pc, ok := usb.(PhoneConnecter); ok {
35         fmt.Println("DisConnect:", pc.name)
36         return
37     }   
38     fmt.Println("unkown device")
39 }
40 
41 func DisConnect2(usb interface{}) {
42     fmt.Println("DisConnect2")
43     switch v := usb.(type) {
44     case PhoneConnecter:
45         fmt.Println("DisConnect:", v.name)
46     default:
47         fmt.Println("unkown device")
48     }
49 }

 

相关文章
|
6月前
|
Go
|
6月前
|
JSON Go 数据格式
【Golang】解决使用interface{}解析json数字会变成科学计数法的问题
【2月更文挑战第9天】解决使用interface{}解析json数字会变成科学计数法的问题
179 0
|
2月前
|
Go
Golang语言基础之接口(interface)及类型断言
这篇文章是关于Go语言中接口(interface)及类型断言的详细教程,涵盖了接口的概念、定义、实现、使用注意事项以及类型断言的多种场景和方法。
38 4
|
3月前
|
JSON 人工智能 编译器
Go json 能否解码到一个 interface 类型的值
Go json 能否解码到一个 interface 类型的值
31 1
|
3月前
|
Go
Go - struct{} 实现 interface{}
Go - struct{} 实现 interface{}
40 9
|
6月前
|
Go
浅谈Golang接口interface
浅谈Golang接口interface
48 0
|
6月前
|
Go
用golang实现一个基于interface的多态示例,展示其使用场景和优劣性。
用golang实现一个基于interface的多态示例,展示其使用场景和优劣性。
163 0
|
11月前
|
Go
go interface 使用
go interface 使用
50 0
|
Go
Go语言学习之 interface
Go语言学习之 interface
37 0
|
Go
go的interface怎么实现的?
面试题:go的interface怎么实现的?
96 0