Golang笔记——Interface类型

Golang笔记——Interface类型😊

Go语言中的`interface`类型是一种强大的抽象工具,它定义了一组方法签名,任何实现了这些方法的类型都自动满足该接口,无需显式声明。这种"鸭子类型"的设计让Go的接口既灵活又实用!🦆

基本语法✨

```go
typeAnimalinterface{
Speak()string
Move()string
}
```

上面定义了一个`Animal`接口,要求实现`Speak()`和`Move()`两个方法。

接口实现️

任何类型只要实现了接口的所有方法,就隐式实现了该接口:

```go
typeDogstruct{}

func(dDog)Speak()string{
return"汪汪!"
}

func(dDog)Move()string{
return"四条腿跑"
}

//Dog自动实现了Animal接口
varaAnimal=Dog{}
fmt.Println(a.Speak())//输出:汪汪!
```

空接口🌌

`interface{}`是空接口,可以表示任何类型,类似于Java中的Object:

```go
funcprintAnything(vinterface{}){
fmt.Printf("值:%v,类型:%T
",v,v)
}

printAnything(42)//值:42,类型:int
printAnything("hello")//值:hello,类型:string
```

类型断言🔍

可以使用类型断言来检查接口值的具体类型:

```go
variinterface{}="hello"

s:=i.(string)//断言i是string类型
fmt.Println(s)//hello

s,ok:=i.(string)//安全断言
ifok{
fmt.Println("是字符串:",s)
}
```

接口组合🧩

Go支持接口组合,可以创建更复杂的接口:

```go
typeSpeakerinterface{
Speak()string
}

typeMoverinterface{
Move()string
}

//组合接口
typeAnimalinterface{
Speaker
Mover
}
```

接口是Go语言多态性的核心,它简单而强大,是Go设计哲学"小而美"的完美体现!💖通过接口,我们可以编写更灵活、更通用的代码,同时保持类型安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值