婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Go 語言中的空接口(推薦)

Go 語言中的空接口(推薦)

熱門標簽:濮陽自動外呼系統代理 賺地圖標注的錢犯法嗎 地圖標注測試 福州鐵通自動外呼系統 澳門防封電銷卡 智能電銷機器人營銷 烏魯木齊人工電銷機器人系統 長沙ai機器人電銷 廣東語音外呼系統供應商

在自己學習 Golang 的這段時間里,我寫了詳細的學習筆記放在我的個人微信公眾號 《Go編程時光》,對于 Go 語言,我也算是個初學者,因此寫的東西應該會比較適合剛接觸的同學,如果你也是剛學習 Go 語言,不防關注一下,一起學習,一起成長。

我的在線博客:http://golang.iswbm.com
我的 Github:github.com/iswbm/GolangCodingTime

1. 什么是空接口?

空接口是特殊形式的接口類型,普通的接口都有方法,而空接口沒有定義任何方法口,也因此,我們可以說所有類型都至少實現了空接口。

type empty_iface interface {
}

每一個接口都包含兩個屬性,一個是值,一個是類型。

而對于空接口來說,這兩者都是 nil,可以使用 fmt 來驗證一下

package main

import (
	"fmt"
)

func main() {
	var i interface{}
	fmt.Printf("type: %T, value: %v", i, i)
}

輸出如下

type: nil>, value: nil>

2. 如何使用空接口?

第一,通常我們會直接使用 interface{} 作為類型聲明一個實例,而這個實例可以承載任意類型的值。

package main

import (
	"fmt"
)

func main() {
	// 聲明一個空接口實例
	var i interface{}

	// 存 int 沒有問題
	i = 1
	fmt.Println(i)

	// 存字符串也沒有問題
	i = "hello"
	fmt.Println(i)

	// 存布爾值也沒有問題
	i = false
	fmt.Println(i)
}

第二,如果想讓你的函數可以接收任意類型的值 ,也可以使用空接口

接收一個任意類型的值 示例

package main

import (
	"fmt"
)

func myfunc(iface interface{}){
	fmt.Println(iface)
}

func main() {
	a := 10
	b := "hello"
	c := true

	myfunc(a)
	myfunc(b)
	myfunc(c)
}

接收任意個任意類型的值 示例

package main

import (
	"fmt"
)

func myfunc(ifaces ...interface{}){
	for _,iface := range ifaces{
		fmt.Println(iface)
	}
}

func main() {
	a := 10
	b := "hello"
	c := true

	myfunc(a, b, c)
}

第三,你也定義一個可以接收任意類型的 array、slice、map、strcut,例如這邊定義一個切片

package main

import "fmt"

func main() {
 any := make([]interface{}, 5)
 any[0] = 11
 any[1] = "hello world"
 any[2] = []int{11, 22, 33, 44}
 for _, value := range any {
 fmt.Println(value)
 }
}

3. 空接口幾個要注意的坑

坑1:空接口可以承載任意值,但不代表任意類型就可以承接空接口類型的值

從實現的角度看,任何類型的值都滿足空接口。因此空接口類型可以保存任何值,也可以從空接口中取出原值。

但要是你把一個空接口類型的對象,再賦值給一個固定類型(比如 int, string等類型)的對象賦值,是會報錯的。

package main

func main() {
	// 聲明a變量, 類型int, 初始值為1
	var a int = 1

	// 聲明i變量, 類型為interface{}, 初始值為a, 此時i的值變為1
	var i interface{} = a

	// 聲明b變量, 嘗試賦值i
	var b int = i
}

這個報錯,它就好比可以放進行禮箱的東西,肯定能放到集裝箱里,但是反過來,能放到集裝箱的東西就不一定能放到行禮箱了,在 Go 里就直接禁止了這種反向操作。(聲明:底層原理肯定還另有其因,但對于新手來說,這樣解釋也許會容易理解一些。)

.\main.go:11:6: cannot use i (type interface {}) as type int in assignment: need type assertion

坑2::當空接口承載數組和切片后,該對象無法再進行切片

package main

import "fmt"

func main() {
	sli := []int{2, 3, 5, 7, 11, 13}

	var i interface{}
	i = sli

	g := i[1:3]
	fmt.Println(g)
}

執行會報錯。

.\main.go:11:8: cannot slice i (type interface {})

坑3:當你使用空接口來接收任意類型的參數時,它的靜態類型是 interface{},但動態類型(是 int,string 還是其他類型)我們并不知道,因此需要使用類型斷言。

package main

import (
	"fmt"
)

func myfunc(i interface{}) {

	switch i.(type) {
	case int:
		fmt.Println("參數的類型是 int")
	case string:
		fmt.Println("參數的類型是 string")
	}
}

func main() {
	a := 10
	b := "hello"
	myfunc(a)
	myfunc(b)
}

輸出如下

參數的類型是 int
參數的類型是 string

總結

到此這篇關于Go 語言中的空接口的文章就介紹到這了,更多相關go 語言空接口內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • django API 中接口的互相調用實例
  • Django 自動生成api接口文檔教程
  • python Django編寫接口并用Jmeter測試的方法
  • Django如何開發簡單的查詢接口詳解
  • 使用Django開發簡單接口實現文章增刪改查
  • golang中interface接口的深度解析
  • 淺談Go語言中的結構體struct & 接口Interface & 反射
  • Go語言接口定義與用法示例
  • 分析Go語言接口的設計原則

標簽:德州 貴陽 阿克蘇 西雙版納 廣西 調研邀請 太原 慶陽

巨人網絡通訊聲明:本文標題《Go 語言中的空接口(推薦)》,本文關鍵詞  語言,中的,空,接口,推薦,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go 語言中的空接口(推薦)》相關的同類信息!
  • 本頁收集關于Go 語言中的空接口(推薦)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品一区二区免费在线观看| 成人精品gif动图一区| 91色乱码一区二区三区| 激情五月播播久久久精品| 日本中文字幕一区二区视频| 一区二区三区中文字幕| 国产精品毛片a∨一区二区三区| 欧美精品日韩一本| 91精品在线麻豆| 精品国产髙清在线看国产毛片| 日韩欧美电影一区| 精品国产123| 中文字幕日韩一区| 三级一区在线视频先锋| 午夜成人免费电影| 国产最新精品精品你懂的| 国产在线播放一区三区四| 99久久99久久精品免费观看| 欧亚洲嫩模精品一区三区| 欧美一区二区三区电影| 日韩欧美一级片| 国产精品亲子伦对白| 午夜不卡在线视频| 国产黑丝在线一区二区三区| 99久免费精品视频在线观看| 欧美日韩国产精选| 欧美激情中文不卡| 日一区二区三区| 丁香啪啪综合成人亚洲小说 | 亚洲国产高清在线| 亚洲最色的网站| 成人国产视频在线观看| 欧美一级夜夜爽| 午夜激情一区二区三区| 色呦呦网站一区| 中文字幕在线不卡视频| 国产麻豆精品久久一二三| 欧美中文字幕一二三区视频| 欧美亚洲免费在线一区| 国产精品少妇自拍| 九一久久久久久| 欧美一区二区三区视频免费播放| 性欧美大战久久久久久久久| 色综合视频在线观看| 亚洲天堂av一区| 91一区二区三区在线观看| 亚洲色图20p| 欧美日韩高清不卡| 久久精品国产精品亚洲红杏 | 欧美日本乱大交xxxxx| 亚洲精品va在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲欧美二区三区| 欧美色图激情小说| 欧美精品日韩一本| 国产精品亲子乱子伦xxxx裸| 欧美一区二区久久| 6080yy午夜一二三区久久| 美女任你摸久久| 色综合天天天天做夜夜夜夜做| 欧美丝袜丝nylons| 亚洲精品美腿丝袜| 麻豆精品视频在线观看视频| 免费看黄色91| 久久99精品久久久久久动态图 | 91 com成人网| 日韩欧美国产三级电影视频| 日本三级亚洲精品| 国产亚洲欧美激情| 成人国产一区二区三区精品| 成人免费在线视频| 欧洲一区二区三区免费视频| 三级影片在线观看欧美日韩一区二区| 欧美理论在线播放| 国内精品国产三级国产a久久| 欧美一区二区三区公司| 另类中文字幕网| 久久久综合激的五月天| k8久久久一区二区三区 | 91免费视频网址| 日韩精品专区在线| 久久精品久久精品| 久久久久久99久久久精品网站| 色欲综合视频天天天| 国内不卡的二区三区中文字幕| 亚洲欧洲精品一区二区三区| 欧美日韩在线播放三区| 一区二区三区日本| 欧美日韩黄色一区二区| 久久福利视频一区二区| 日韩一区欧美二区| 欧美日韩国产首页| 国产东北露脸精品视频| 青青草原综合久久大伊人精品 | 九九精品一区二区| 久久福利视频一区二区| 国产一区二区三区免费观看| 蜜桃一区二区三区在线| 美日韩一级片在线观看| 亚洲欧美日韩国产一区二区三区 | 美女免费视频一区二区| 亚洲午夜精品网| 日韩国产在线一| 国产精品88av| 在线免费观看日本欧美| 日韩一区二区三区在线观看| 欧美变态tickling挠脚心| 色综合色狠狠综合色| 免费久久99精品国产| 国产毛片精品一区| 国产一区二区三区蝌蚪| 国产一区二区在线视频| 成人黄色大片在线观看| 成人激情免费电影网址| 91精品久久久久久蜜臀| 亚洲人快播电影网| 国产一区二区三区不卡在线观看 | 国产日产欧产精品推荐色 | 一区二区三区日韩欧美精品| 亚洲一区二区视频在线观看| 欧美日韩高清一区二区| 91精品午夜视频| 国产午夜亚洲精品理论片色戒| 久久精品人人做人人综合 | 555www色欧美视频| 精品国产制服丝袜高跟| 国产精品福利一区二区三区| 亚洲综合视频网| 国产精品一品视频| 91精品国产综合久久久蜜臀粉嫩| 欧美精品一区二| 美女爽到高潮91| 精品国产电影一区二区| 国产一区二区三区在线观看精品| 91精品国模一区二区三区| 亚洲综合偷拍欧美一区色| 国产精品 欧美精品| 精品日产卡一卡二卡麻豆| 丝袜美腿成人在线| 91女厕偷拍女厕偷拍高清| 国产午夜精品久久久久久久| 国产精品三级视频| 色综合久久88色综合天天免费| 一区二区在线观看免费| 欧美岛国在线观看| 成人av在线一区二区| 一区二区三区高清在线| 国产一区二区在线免费观看| 欧美一区二区视频观看视频| 天天综合天天做天天综合| 欧美不卡一二三| 黑人巨大精品欧美黑白配亚洲| 精品国产1区二区| 在线亚洲一区二区| 久久99精品久久久久久久久久久久| 欧美一级淫片007| 欧美日韩精品专区| 91麻豆精品国产综合久久久久久| 亚洲.国产.中文慕字在线| 91精品国产入口在线| 国产精品原创巨作av| 婷婷六月综合网| 自拍偷拍亚洲激情| www激情久久| 欧美日韩高清不卡| 色婷婷久久久亚洲一区二区三区| 国内成人自拍视频| 亚洲国产精品尤物yw在线观看| 国产校园另类小说区| 日韩欧美二区三区| 这里是久久伊人| 国模大尺度一区二区三区| 日韩精彩视频在线观看| 一区二区三区国产| ...av二区三区久久精品| 在线视频国内自拍亚洲视频| 成人精品一区二区三区四区| 日日噜噜夜夜狠狠视频欧美人| 国产精品午夜电影| 欧美日韩在线播放一区| 成人av动漫在线| 色婷婷亚洲综合| 欧美一卡二卡三卡| 国产清纯白嫩初高生在线观看91 | 成人激情开心网| 欧美日韩国产不卡| 色悠悠亚洲一区二区| 亚洲第一在线综合网站| 亚洲欧美经典视频| 尤物av一区二区| 亚洲国产日产av| 日韩在线一二三区| 久草在线在线精品观看| 欧美视频一区二区三区在线观看| 精品福利av导航| 亚洲精品在线电影| 亚洲欧美欧美一区二区三区| 日韩在线一区二区| 成人免费的视频| 欧美电视剧免费全集观看|