### 接口
>**算搞明白了,首先定義一個接口,再定義一個結構體,在寫實現接口的方法,最后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
- 多線程:通道思路
- 多線程爬蟲:快代理