好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > go語言實現接口查詢

go語言實現接口查詢

熱門標簽:湛江crm外呼系統排名 不封卡外呼系統 鄭州智能語音電銷機器人價格 重慶慶云企業400電話到哪申請 地圖標注免費定制店 仙桃400電話辦理 上海極信防封電銷卡價格 宿遷便宜外呼系統代理商 寧波語音外呼系統公司

一句話總結:如果接口A實現了接口B中所有方法,那么A可以轉化為B接口。

package options
type IPeople interface {
 GetName() string
}
type IPeople2 interface {
 GetName() string
 GetAge() int
}
package main
import (
 "fmt"
 "options"
)
type person struct {
 name string
}
func (p *person) GetName() string {
 return p.name
}
type person2 struct {
 name string
 age int
}
func (p *person2) GetName() string {
 return p.name
}
func (p *person2) GetAge() int {
 return p.age
}
func main() {
 //p不可以轉化為options.IPeople2接口,沒有實現options.IPeople2接口中的GetAge()
 var p options.IPeople = person{"jack"}
 if p2, ok := p.(options.IPeople2); ok {
 fmt.Println(p2.GetName(), p2.GetAge())
 } else {
 fmt.Println("p不是Ipeople2接口類型")
 }
 //p2可以轉化為options.IPeople接口,因為實現了options.IPeople接口的所有方法
 var p2 options.IPeople2 = person2{"mary", 23}
 if p, ok := p2.(options.IPeople); ok {
 fmt.Println(p.GetName())
 }
 
 var pp options.IPeople = person{"alen"}
 if pp2, ok := pp.(*person); ok {
 fmt.Println(pp2.GetName()) //pp接口指向的對象實例是否是*person類型,*不能忘
 }
   switch pp.(type) {
 case options.IPeople:
 fmt.Println("options.IPeople") //判斷接口的類型
 case options.IPeople2:
 fmt.Println("options.IPeople2")
 default:
 fmt.Println("can't found")
  }
  var ii interface{} = 43 //默認int類型
  switch ii.(type) {
 case int:
 fmt.Println("int")
 default:
 fmt.Println("can't found")
  }
}

補充:golang中Any類型使用及空接口中類型查詢

1.Any類型

GO語言中任何對象實例都滿足空接口interface{},空接口可以接口任何值

var v1 interface{} = 1   
  var v2 interface{} = "abc"  
  var v3 interface{} = 2.345
  var v4 interface{} = make(map[..]...)
  ....

2.1 關于空接口的類型查詢方式一,使用ok

package main 
  import "fmt"
 
  //空接口可以接受任何值
  //interface { }
 
  func main() {
    var v1 interface{ }
    v1 = 6.78
 
//賦值一個變量v判斷其類型是否為float64,是則為真,否則,為假
    if v, ok := v1.(float64);ok{
      fmt.Println(v, ok)
    }else {
      fmt.Println(v,ok)
    } 
  }

2.2 關于空接口類型查詢方式二,switch語句結合 var.type()

package main 
import "fmt"
 
//空接口可以接受任何值
//interface { }
 
func main() {
  var v1 interface{ }
  v1 = "張三"
 
  switch v1.(type) {
  case float32:
 
  case float64:
    fmt.Println("this is float64 type")
  case string:
    fmt.Println("this is string type") 
  } 
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 一篇文章帶你玩轉go語言的接口
  • 分析Go語言接口的設計原則
  • Go語言-為什么返回值為接口類型,卻返回結構體
  • GO語言gin框架實現管理員認證登陸接口
  • Go語言使用swagger生成接口文檔的方法
  • Go語言的接口詳解

標簽:安康 儋州 青海 物業服務 遼寧 西雙版納 海南 電子產品

巨人網絡通訊聲明:本文標題《go語言實現接口查詢》,本文關鍵詞  語言,實現,接口,查詢,語言,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《go語言實現接口查詢》相關的同類信息!
  • 本頁收集關于go語言實現接口查詢的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 粉嫩国产白浆在线播放| 肉色薄丝脚交一区二区| 五六七刺客第五季在线看免费| 老卫把船开到河中心去的故事| 又黄又硬又湿又黄的网站| 亚洲一区精品伊人久久| 体育生沉迷警察胯下| 爆乳极品自慰91久久久久| 国产v精品欧美精品v日韩| 伦理片1313网在线观看| 辣手狂花| 亚洲爽爽网| 张柏芝精品一区二区三区在线观看| japanesehd国产在线无毒不卡| 久久免费毛片| ??老师扒开腿让我c视频| 男男Gay腐片H大尺度CV| 白洁赵敏张倩| 草莓污污视频| 亚洲精品久久久久久A片| 国产一级黄色片子| 日本真人边吃奶边做爽的视频| 军人暴力性强reper| 日本三级在丈面前被耍了在线观看下载| 777午夜精品视频在线播放| 精品欧美激情在线看| 国产成人H视频在线播放| 亚洲精品第四页中文字幕| 英语老师的小兔子好大好软水| 缴情啪啪三级小说网| mm625电影在线观看免费| 又大又粗好舒服好爽视频| [综影视]媚肉濡湿(高h)| 9420免费观看| zljzljzljzljxljzljzlj亚洲| 床戏做爰A片一区二区三区小说| 亚洲欧洲日韩综合色天使不卡| 国产欧美久久久久久精品四区| 亚洲欧美日韩综合| 久久久久久精品无码色情| 久久久精品人妻久久影视果冻传媒 |