婷婷综合国产,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
    4438x成人网最大色成网站| 亚洲国产日韩一区二区| 成人欧美一区二区三区黑人麻豆 | 亚洲18影院在线观看| www久久精品| 蜜桃一区二区三区四区| 国产精品久久久久影院亚瑟 | 亚洲精品一区二区三区福利| 日韩久久一区二区| 国产精品久久毛片| 欧美在线短视频| 亚洲欧美日韩国产中文在线| 成人免费黄色大片| 91免费版pro下载短视频| 最新成人av在线| 毛片不卡一区二区| 国产精品一区二区黑丝| 午夜精品久久一牛影视| 亚洲男女一区二区三区| 亚洲在线视频网站| 蜜臀精品一区二区三区在线观看 | 成人中文字幕合集| 欧美丰满高潮xxxx喷水动漫| 欧美日韩国产在线观看| 色综合一个色综合亚洲| 亚洲欧美电影一区二区| 26uuu国产一区二区三区| 日本精品一级二级| 久久久精品人体av艺术| 色偷偷成人一区二区三区91| 日本在线观看不卡视频| 亚洲免费av高清| 日产国产高清一区二区三区| 有坂深雪av一区二区精品| 成人h版在线观看| 在线免费视频一区二区| 在线视频亚洲一区| 日韩免费观看高清完整版| 色丁香久综合在线久综合在线观看| 久久99久久99| 91福利精品视频| 日韩国产欧美在线视频| 天堂成人国产精品一区| 国产乱码字幕精品高清av | 免费久久99精品国产| 欧美日韩夫妻久久| 国产大陆a不卡| 欧美精品一区二区蜜臀亚洲| 成人99免费视频| 久久色在线视频| 国产精品卡一卡二卡三| 视频一区欧美日韩| 成人天堂资源www在线| 亚洲美女精品一区| 国产视频一区在线播放| 亚洲精品久久久蜜桃| 欧美日韩成人高清| 亚洲v精品v日韩v欧美v专区| 在线视频你懂得一区| 中文字幕在线不卡一区| 国产精品每日更新在线播放网址 | 亚洲五月六月丁香激情| 经典一区二区三区| 国产一区二区三区不卡在线观看| 亚洲不卡av一区二区三区| 久久精品国产亚洲5555| 亚洲精品一区在线观看| 综合色中文字幕| 久久久国产综合精品女国产盗摄| 全国精品久久少妇| 欧美日本视频在线| 亚洲综合在线视频| 亚洲精品在线电影| 亚洲一级二级在线| 欧美系列日韩一区| 国产精品久久久久久久久快鸭 | 欧美精选一区二区| 成a人片亚洲日本久久| 欧美在线观看视频一区二区三区| 精品国产伦一区二区三区免费 | 亚洲天堂久久久久久久| 欧美一级午夜免费电影| 久久这里都是精品| eeuss鲁一区二区三区| 欧美性大战久久久久久久蜜臀| 国产激情精品久久久第一区二区| 色美美综合视频| 欧美天堂一区二区三区| 91麻豆6部合集magnet| 国产高清亚洲一区| 国产一区欧美日韩| 91丝袜美女网| 成人动漫视频在线| 日韩免费在线观看| 日本91福利区| 免播放器亚洲一区| 欧美国产激情二区三区| 中文在线资源观看网站视频免费不卡| 国产精品三级电影| 国产精品伊人色| 国产福利91精品一区| 国产精品久久久久久久第一福利| 中文字幕亚洲成人| 久久夜色精品国产噜噜av| 国产精品一二三四五| 久久综合色综合88| 国产精品综合视频| 蜜臀精品久久久久久蜜臀| 精品一区二区国语对白| 日韩高清不卡一区二区三区| 亚洲欧美在线高清| 久久久久久久久97黄色工厂| 91精品国产一区二区| 91黄视频在线| 国产综合成人久久大片91| 国产欧美一区二区精品婷婷| 一区二区在线看| 国产乱淫av一区二区三区| 五月激情丁香一区二区三区| 久久不见久久见中文字幕免费| 国产成人在线网站| 美女视频黄久久| 久久精品国产澳门| 日本欧美一区二区| 色婷婷久久综合| 蜜桃av一区二区| 亚洲成人动漫在线免费观看| 欧美日韩久久一区| 国产乱人伦偷精品视频不卡 | 国产三级欧美三级| 亚洲免费观看视频| 亚洲激情综合网| 久久电影国产免费久久电影| 欧美精品1区2区| 国产亚洲欧美日韩日本| 国产一二精品视频| 欧美一级片免费看| 播五月开心婷婷综合| 美美哒免费高清在线观看视频一区二区 | 精品一区二区在线视频| 日韩欧美一级二级三级| 国产精品乱人伦中文| 在线不卡的av| 精品一区二区免费视频| 欧美怡红院视频| 欧美sm美女调教| 久久综合九色综合97_久久久| 国产精品入口麻豆九色| 99re这里都是精品| 热久久免费视频| 日本sm残虐另类| 亚洲成人精品一区二区| 亚洲精品免费一二三区| 免费成人小视频| 欧美中文一区二区三区| 久久综合色婷婷| 久久精品二区亚洲w码| 欧美三日本三级三级在线播放| 亚洲精品在线观| 91麻豆免费视频| 2023国产一二三区日本精品2022| 国产精品理伦片| 99riav一区二区三区| 国产精品毛片大码女人 | 精品久久久久99| 国产精品灌醉下药二区| 波多野结衣欧美| 国产亚洲美州欧州综合国| 国产精品电影一区二区三区| 色综合天天综合网天天狠天天| 一区二区三区四区在线播放| 欧美日韩大陆一区二区| 婷婷丁香激情综合| 欧美不卡一二三| 激情综合网激情| 亚洲va欧美va人人爽| 精品88久久久久88久久久| 奇米影视一区二区三区| 91在线免费视频观看| 中文字幕在线一区免费| 国产成人精品在线看| 一个色在线综合| 日韩三级在线免费观看| 韩国成人福利片在线播放| 精品少妇一区二区| 国产欧美日韩精品a在线观看| 麻豆精品蜜桃视频网站| 欧美日韩国产综合一区二区 | 欧美一区二区精品在线| 日本不卡一二三| 久久久亚洲综合| 国产成人精品一区二区三区四区 | 欧美美女喷水视频| 亚洲www啪成人一区二区麻豆 | 欧美一区二区三区白人| 国产成人精品免费网站| 国产精品污www在线观看| 色哟哟一区二区在线观看 | 日韩三级高清在线| 4hu四虎永久在线影院成人|