### 接口
>**算搞明白了,首先定义一个接口,再定义一个结构体,在写实现接口的方法,最后main函数内,是通过实例化结构体,访问接口里面的方法。
感觉这个应该和python里面的类一样,是函数方法的合集**
```
// 定义接口
type 接口名 interface {
方法名 返回参数
...
}
// 定义结构体
type 结构体名 struct {
成员变量 类型
...
}
// 实现接口方法
func (结构体名小写 结构体名) 方法名() 返回参数 {
// 方法实现
}
...
func main() {
// var 变量名 结构体名
变量名 := new(结构体名)
变量名.方法名()
}
```
```
package main
import (
"fmt"
)
// 声明一个接口 带sing 和 dance 两个方法
type Play interface {
sing() string
dance() string
}
//声明一个结构体
type List struct {
}
//实现接口的方法
func (list List) sing() {
fmt.Println("我会唱歌")
}
//实现接口的方法
func (list List) dance() {
fmt.Println("我会跳舞")
}
func main() {
// 实例化结构体
people := new(List)
// 实现接口的函数
people.sing()
people.dance()
}
结果:
我会唱歌
我会跳舞
```
- 安装开发环境
- 安装开发环境
- 安装详细教程
- 引入包
- Go语言基础
- 基本变量与数据类型
- 变量
- 数据类型
- 指针
- 字符串
- 代码总结
- 常量与运算符
- 常量
- 运算符
- 流程控制
- if判断
- for循环
- switch分支
- goto跳转
- 斐波那契数列
- Go语言内置容器
- 数组
- 切片
- 映射
- 函数
- 函数(上)
- 函数(中)
- 函数(下)
- 小节
- 包管理
- 结构体
- 结构体(上)
- 结构体(中)
- 结构体(下)
- 小节
- 错误处理
- 错误处理
- 宕机
- 错误应用
- 小节
- 文件操作
- 获取目录
- 创建和删除目录
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 处理JSON文件
- 接口与类型
- 接口的创建与实现
- 接口赋值
- 接口嵌入
- 空接口
- 类型断言(1)
- 类型断言(2)
- 小节
- 并发与通道
- goroutine协程
- runtime包
- 通道channel
- 单向通道channel
- select
- 线程同步
- 多线程的深入学习
- http编程
- http简介
- Client和Request
- get请求
- post请求
- 模块函数方法
- 模块
- fmt库,模块
- 项目练习
- 爬虫:高三网
- 爬虫:快代理
- 爬虫:快代理2
- 多线程:通道思路
- 多线程爬虫:快代理