成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > Go 語言中關(guān)于接口的三個(gè)

Go 語言中關(guān)于接口的三個(gè)

熱門標(biāo)簽:賺地圖標(biāo)注的錢犯法嗎 智能電銷機(jī)器人營銷 廣東語音外呼系統(tǒng)供應(yīng)商 濮陽自動(dòng)外呼系統(tǒng)代理 澳門防封電銷卡 烏魯木齊人工電銷機(jī)器人系統(tǒng) 地圖標(biāo)注測(cè)試 長沙ai機(jī)器人電銷 福州鐵通自動(dòng)外呼系統(tǒng)

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

1. 對(duì)方法的調(diào)用限制

接口是一組固定的方法集,由于靜態(tài)類型的限制,接口變量有時(shí)僅能調(diào)用其中特定的一些方法。

請(qǐng)看下面這段代碼

package main

import "fmt"

type Phone interface {
 call()
}

type iPhone struct {
 name string
}

func (phone iPhone)call() {
 fmt.Println("Hello, iPhone.")
}

func (phone iPhone)send_wechat() {
 fmt.Println("Hello, Wechat.")
}

func main() {
 var phone Phone
 phone = iPhone{name:"ming's iphone"}
 phone.call()
 phone.send_wechat()
}

我定義了一個(gè) Phone 的接口,只要求實(shí)現(xiàn) call 方法即可,也就是只要能打電話的設(shè)備就是一個(gè)電話(好像是一句沒用的廢話)。

然后再定義了一個(gè) iPhone 的結(jié)構(gòu)體,該結(jié)構(gòu)體接收兩個(gè)方法,一個(gè)是打電話( call 函數(shù)),一個(gè)是發(fā)微信(send_wechat 函數(shù))。

最后一步是關(guān)鍵,我們定義了一個(gè) Phone 接口類型的 phone 對(duì)象,該對(duì)象的內(nèi)容是 iPhone 結(jié)構(gòu)體。然后我們調(diào)用該對(duì)象的 call 方法,一切正常。

但是當(dāng)你調(diào)用 phone.send_wechat 方法,程序會(huì)報(bào)錯(cuò),提示我們 Phone 類型的方法沒有 send_wechat 的字段或方法。

# command-line-arguments
./demo.go:30:10: phone.send_wechat undefined (type Phone has no field or method send_wechat)

原因也很明顯,因?yàn)槲覀兊膒hone對(duì)象顯示聲明為 Phone 接口類型,因此 phone調(diào)用的方法會(huì)受到此接口的限制。

那么如何讓 phone 可以調(diào)用 send_wechat 方法呢?

答案是可以不顯示的聲明為 Phone接口類型 ,但要清楚 phone 對(duì)象實(shí)際上是隱式的實(shí)現(xiàn)了 Phone 接口,如此一來,方法的調(diào)用就不會(huì)受到接口類型的約束。

修改 main 方法成如下

func main() {
 phone := iPhone{name:"ming's iphone"}
 phone.call()
 phone.send_wechat()
}

運(yùn)行后,一切正常,沒有報(bào)錯(cuò)。

Hello, iPhone.
Hello, Wechat.

2. 調(diào)用函數(shù)時(shí)的隱式轉(zhuǎn)換

Go 語言中的函數(shù)調(diào)用都是值傳遞的,變量會(huì)在方法調(diào)用前進(jìn)行類型轉(zhuǎn)換。

比如下面這段代碼

import (
 "fmt"
)

func printType(i interface{}) {

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

func main() {
 a := 10
 printType(a)
}

如果你運(yùn)行后,會(huì)發(fā)現(xiàn)一切都很正常

參數(shù)的類型是 int

但是如果你把函數(shù)內(nèi)的內(nèi)容搬到到外面來

package main

import "fmt"


func main() {
 a := 10

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

就會(huì)有意想不到的結(jié)果,居然報(bào)錯(cuò)了。

# command-line-arguments
./demo.go:9:5: cannot type switch on non-interface value a (type int)

這個(gè)操作會(huì)讓一個(gè)新人摸不著頭腦,代碼邏輯都是一樣的,為什么一個(gè)不會(huì)報(bào)錯(cuò),一個(gè)會(huì)報(bào)錯(cuò)呢?

原因其實(shí)很簡單。

當(dāng)一個(gè)函數(shù)接口 interface{} 空接口類型時(shí),我們說它可以接收什么任意類型的參數(shù)(江湖上稱之為無招勝有招)。

當(dāng)你使用這種寫法時(shí),Go 會(huì)默默地為我們做一件事,就是把傳入函數(shù)的參數(shù)值(注意:Go 語言中的函數(shù)調(diào)用都是值傳遞的)的類型隱式的轉(zhuǎn)換成 interface{} 類型。

如何進(jìn)行接口類型的顯示轉(zhuǎn)換

上面了解了函數(shù)中 接口類型的隱式轉(zhuǎn)換后,你的心里可能開始有了疑問了,難道我使用類型斷言,只能通過一個(gè)接收空接口類型的函數(shù)才能實(shí)現(xiàn)嗎?

答案當(dāng)然是 No.

如果你想手動(dòng)對(duì)其進(jìn)行類型轉(zhuǎn)換,可以像下面這樣子,就可以將變量 a 的靜態(tài)類型轉(zhuǎn)換為 interface{} 類型然后賦值給 b (此時(shí) a 的靜態(tài)類型還是 int,而 b 的靜態(tài)類型為 interface{})

var a int = 25
b := interface{}(a)

知道了方法后,將代碼修改成如下:

package main

import "fmt"


func main() {
 a := 10

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

運(yùn)行后,一切正常。

參數(shù)的類型是 int

3. 類型斷言中的隱式轉(zhuǎn)換

上面我們知道了,只有靜態(tài)類型為接口類型的對(duì)象才可以進(jìn)行類型斷言。

而當(dāng)類型斷言完成后,會(huì)返回一個(gè)靜態(tài)類型為你斷言的類型的對(duì)象,也就是說,當(dāng)我們使用了類型斷言,Go 實(shí)際上又會(huì)默認(rèn)為我們進(jìn)行了一次隱式的類型轉(zhuǎn)換。

驗(yàn)證方法也很簡單,使用完一次類型斷言后,對(duì)返回的對(duì)象再一次使用類型斷言,Goland 立馬就會(huì)提示我們新對(duì)象 b 不是一個(gè)接口類型的對(duì)象,不允許進(jìn)行類型斷言。

總結(jié)

到此這篇關(guān)于Go 語言中關(guān)于接口的三個(gè)"潛規(guī)則"的文章就介紹到這了,更多相關(guān)go語言接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 如何判斷Golang接口是否實(shí)現(xiàn)的操作
  • golang接口IP限流,IP黑名單,IP白名單的實(shí)例
  • GO語言gin框架實(shí)現(xiàn)管理員認(rèn)證登陸接口
  • Go語言使用swagger生成接口文檔的方法
  • go語言實(shí)現(xiàn)接口查詢

標(biāo)簽:德州 貴陽 調(diào)研邀請(qǐng) 慶陽 西雙版納 阿克蘇 廣西 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go 語言中關(guān)于接口的三個(gè)》,本文關(guān)鍵詞  語,言中,關(guān)于,接口,的,三個(gè),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go 語言中關(guān)于接口的三個(gè)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go 語言中關(guān)于接口的三個(gè)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产免费美女视频| 成年女人18级毛片毛片免费| 中文字幕在线免费看线人| 国产成人精品福利一区二区三区| 欧美涩涩网站| 天天操天天射天天插| 国产精品久久久久久久久久ktv| 国产女人18毛片水真多| 涩涩视频在线观看| 亚洲精品美女在线| 欧美激情综合色综合啪啪五月| 91国内免费在线视频| 秋霞在线一区二区| 亚洲人午夜精品天堂一二香蕉| 男人添女人下部高潮视频在观看| 久久久久国产精品一区三寸| 国模精品一区二区三区色天香| 香蕉成人啪国产精品视频综合网| 最近2019中文字幕一页二页| 在线日韩第一页| 99久久精品免费看国产一区二区三区| 在线播放成人| 国产午夜精品无码一区二区| jizz国产免费| 美女诱惑一区| 日本一区二区在线视频观看| 青青草视频播放| 成人精品视频一区二区三区尤物| 欧美体内she精视频在线观看| 国产精品成人免费精品自在线观看| 二个人看的毛片| 4hu四虎永久网址| 大片免费在线看视频| 免费看av不卡| 116极品美女午夜一级| 欧美三级电影网站| 日韩女优毛片在线| 久久人人爽人人| 欧美日本在线播放| 亚洲另类在线观看| 五月天色综合| 日韩成人久久| 久久视频免费在线观看| 午夜久久久久久久久久| 成人啊v在线| 亚洲图片制服诱惑| 久久免费的精品国产v∧| 日韩欧美一区视频| 日韩视频精品在线观看| 五月天激情小说| 丝袜美腿精品国产二区| 国产乱国产乱300精品| 电影天堂久久| 亚洲片国产一区一级在线观看| 伊人网站在线观看| 97免费资源站| 中文字幕在线观看的网站| 久久久免费av| 国产字幕在线观看| 91精品美女在线| 亚洲精品1区2区3区| 国模大尺度视频一区二区| 影音先锋成人资源网站| 久草一本av| 九色91国产| 久久婷婷国产综合国色天香| 疯狂做受xxxx高潮欧美日本| 日韩精品电影| 欧美日韩亚洲综合一区二区三区| 亚洲国产一区自拍| 成人精品小蝌蚪| 久久人人97超碰国产公开结果| 麻豆成全视频免费观看在线看| 伊人久久成人网| 欧美日韩三级电影在线| 999在线精品| 日韩精品一区二区亚洲av性色| 成人影院天天5g天天爽无毒影院| 精品一区在线播放| 亚洲欧美另类自拍| 九九99九九精彩| 亚洲福利电影网| 日本国产欧美| 国产精品久久久久久久| 国产精品扒开腿做爽爽爽的视频| 日本精品在线观看视频| 中文字幕97| av影院在线| 欧美激情手机在线视频| 欧美日韩国产亚洲一区| 亚洲丝袜美腿一区| 永久免费av片在线观看全网站| 性猛交╳xxx乱大交| 91精品一区二区三区四区| 丰满少妇xoxoxo视频| 成人精品gif动图一区| 欧美性受xxxx黒人xyx性爽| 国产精品网站入口| 麻豆av福利av久久av| 橘梨纱av一区二区三区在线观看| 99国产精品久久久| 黄页免费欧美| 亚洲精品国产嫩草在线观看| av在线免费观看网址| 亚洲精品一二三四五区| 污污网站免费看| 日本福利视频在线| 337p粉嫩色噜噜噜大肥臀| 亚洲视频在线观看免费视频| 99亚洲伊人久久精品影院红桃| 777午夜精品福利在线观看| 色婷婷综合久久久久中文字幕| 日韩少妇内射免费播放| 日韩在线www| 亚洲精品久久久久| 亚洲国产高清在线| 热舞福利精品大尺度视频| 小日子的在线观看免费第8集| 久久精品国产屋| japan高清日本乱xxxx| 亚洲va在线观看| 一区二区三区四区毛片| 亚洲成人黄色影院| 亚洲欧美自拍一区| 日本一区视频在线播放| 国产精品1区2区在线观看| 水蜜桃久久夜色精品一区的特点| 一区二区三区四区在线视频| 女性女同性aⅴ免费观女性恋| 国产成人在线视频网址| 中国黄色在线视频| 欧美一区二区三区四区在线| 亚洲三级黄色在线观看| a∨色狠狠一区二区三区| 菠萝菠萝蜜网站| 99re6这里只有精品视频在线观看| 欧美一级免费看| 中文字幕+乱码+中文乱码91| 在线观看色网站| 免费看日韩av| 在线综合视频播放| 欧美日韩中文字幕综合视频| 精品国产91亚洲一区二区三区婷婷| 中文字幕人妻一区| 亚洲 自拍 另类小说综合图区| 欧美激情第1页| 亚洲小说欧美另类婷婷| 欧美精品一二| 欧美一级特黄a| 欧美日韩国产片| 国产精品麻豆一区| 国产黄色一区| 巨乳诱惑日韩免费av| 黄色一级视频免费观看| 蜜桃麻豆影像在线观看| 国产精品xxxav免费视频| 日韩有码在线电影| 探花国产精品| 亚洲国产精品久久久男人的天堂| 日韩免费高清在线观看| 色94色欧美一区| 操你啦视频分享| 国产91av在线播放| 黄色网址网站| 欧美大片91| 免费电影网站在线视频观看福利| 亚洲视频在线观看免费视频| 一本高清dvd不卡在线观看| 亚洲精品高清视频在线观看| 久久久国产精品午夜一区ai换脸| 黄网站免费看| 精品一区二区三区在线视频| 亚洲一区成人在线| 欧美性猛交丰臀xxxxx网站| 99在线热播精品免费99热| 91精品国产高清久久久久久久久| 中日韩黄色大片| 久久亚洲国产成人亚| www.黄色在线观看| 日韩午夜电影免费看| 91国偷自产中文字幕久久| 侵犯稚嫩小箩莉h文系列小说| 亚洲美女黄色片| 麻豆影视国产在线观看| 一色屋色费精品视频在线观看| 合欧美一区二区三区| 色爱综合网欧美| 欧美视频中文字幕在线| 丰满少妇xbxb毛片日本| 最新亚洲激情| 影音先锋中文字幕影院| 一本一本久久a久久| 成人国产精品久久久久久亚洲| 激情av在线播放| 色综合99久久久无码国产精品| 国产又粗又猛又爽又黄的网站| 久久久久久久综合| 久久久久久久久国产精品| 日本午夜一本久久久综合| 亚洲美女激情视频| 成年视频在线观看| 中文字幕在线永久| 欧美色图亚洲| 懂色av噜噜一区二区三区av| 少妇精品无码一区二区| 一个人看的www视频在线免费观看| 大地资源中文在线观看免费版| 日本一区二区三区视频在线看| 成人免费观看男女羞羞视频| 羞羞影院欧美| 亚洲成人99| 色呦呦一区二区三区| 欧美黄色www| 最新中文字幕在线观看视频| 狠狠干夜夜操| 国产高清一区视频| 色综合久久久久| 亚洲欧美综合国产精品一区| 侵犯稚嫩小箩莉h文系列小说| 国产揄拍国内精品对白| 日韩亚洲欧美成人一区| 久国产精品视频| 中文字幕av无码一区二区三区| 色婷婷av一区二区三区大白胸| 欧美精品在线免费观看| 午夜免费看毛片| 成人免费视频网站入口| 国产精品videossex| 电影天堂爱爱爱爱| 亚洲黄色av女优在线观看| 欧美日本一区二区视频在线观看| www在线观看免费| 国产丝袜在线播放| 91破解版在线看| 激情欧美一区| 中文在线字幕在线观看| 浅井舞香一区二区| 高清欧美性猛交xxxx黑人猛交| 免费网站观看www在线观| 亚洲日韩欧美一区二区在线| 大陆av在线播放| 天堂a√在线| 芒果视频成人app| 欧美色网在线| 久久国产精品国产精品| 日韩一区二区视频在线| 先锋影音在线播放av| 精品国产免费观看一区| 久久6免费视频| 成人免费毛片日本片视频| 欧美专区日韩| 成人软件网18免费视频| 日日碰狠狠添天天爽超碰97| 中文字幕在线视频久| 亚洲成a人无码| 国内不卡的一区二区三区中文字幕| 亚洲日本视频在线观看| 九九九九九九九九| 成人午夜网址| 日本一本a高清免费不卡| 国产性一乱一性一伧一色| 日韩成人中文字幕| 麻豆电影传媒二区| 久久频这里精品99香蕉| 亚洲free嫩bbb| 国产成人麻豆精品午夜在线| 在线观看欧美日本| 成人全视频免费观看在线看| 欧美日韩色视频| 久久久精品蜜桃| 国产精品久久午夜夜伦鲁鲁| 人妻少妇无码精品视频区| 无码人妻aⅴ一区二区三区69岛| 97超级碰在线看视频免费在线看| 亚洲一区三区电影在线观看| 午夜av电影一区| 亚洲国产日韩一级| 欧美乱大交xxxxx在线观看| jizzjizz.con| 在线日韩国产网站| 范冰冰一级做a爰片久久毛片| 免费在线观看的av网站| av综合网址| 免费黄色电影在线观看| 日韩国产在线看| 欧美日韩视频在线第一区| 九九精品在线视频| 日韩欧美中文字幕一区二区三区| 四虎成人影院网址| 日韩性xxxx爱| 国产一区日韩| 丝袜熟女一区二区三区| 日韩电影大全免费观看2023年上| 美女撒尿一区二区三区| 精品国产乱码久久久久久丨区2区| 国产在视频一区二区三区吞精| av超碰在线| 欧美最猛性xxxx免费| 免费一级a毛片夜夜看| 无码人妻少妇伦在线电影| 免费看日批视频| 久久久资源网| 中文字幕精品无码一区二区| 色视频www在线播放国产人成| 视频在线观看你懂的| 日韩视频免费观看高清完整版在线观看| 国产资源在线观看| 嫩草香蕉在线91一二三区| 99re热在线观看| 99久久伊人精品影院| v片在线观看| 亚洲电影成人av99爱色| 国产 porn| 天天综合网天天综合| 中文字幕乱码无码人妻系列蜜桃| 全球成人免费直播| 中文字幕国产专区| 亚洲一区二区高清视频| 97香蕉久久超级碰碰高清版| 欧美激情一区不卡| 中日韩av在线播放| xxxx在线播放| 国产精品一区二区三区av麻| 蜜臀久久99精品久久久无需会员| 黄色三级视频片| 欧美激情精品久久久久久免费印度| 国产视频123区| 日韩免费中文专区|