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

主頁(yè) > 知識(shí)庫(kù) > golang之反射和斷言的具體使用

golang之反射和斷言的具體使用

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

1. 反射

反射這個(gè)概念絕大多數(shù)語(yǔ)言都有,比如Java,PHP之類(lèi),golang自然也不例外,反射其實(shí)程序能夠自描述和自控制的一類(lèi)機(jī)制。

比如,通過(guò)PHP的反射,你可以知道一個(gè)類(lèi)有什么成員,有什么方法。而golang,也能夠通過(guò)官方自帶的reflect包來(lái)了解各種變量類(lèi)型及其信息。

下面我們通過(guò)一個(gè)例子查看反射的基本用法。

話(huà)不多說(shuō),直接貼代碼:

package main

import (
  "fmt"
  "reflect"
)

type Order struct {
  ordId   int `json:"order_id" validate:"required"`
  customerId string  `json:"customer_id" validate:"required"`
  callback func() `json:"call_back" validate:"required"`
}

func reflectInfo(q interface{}) {
  t := reflect.TypeOf(q)
  v := reflect.ValueOf(q)
  fmt.Println("Type ", t)
  fmt.Println("Value ", v)
  for i := 0; i  v.NumField(); i = i + 1 {
    fv := v.Field(i)
    ft := t.Field(i)
    tag := t.Field(i).Tag.Get("json")
    validate := t.Field(i).Tag.Get("validate")
    switch fv.Kind() {
    case reflect.String:
      fmt.Printf("The %d th %s types: %s, valuing: %s, struct tag: %v\n", i, ft.Name, "string", fv.String(), tag + " " + validate)
    case reflect.Int:
      fmt.Printf("The %d th %s types %s, valuing %d, struct tag: %v\n", i, ft.Name, "int", fv.Int(), tag + " " + validate)
    case reflect.Func:
      fmt.Printf("The %d th %s types %s, valuing %v, struct tag: %v\n", i, ft.Name, "func", fv.String(), tag + " " + validate)
    }
  }

}
func main() {
  o := Order{
    ordId:   456,
    customerId: "39e9e709-dd4f-0512-9488-a67c508b170f",
  }
  reflectInfo(o)
}

首先,我們用reflect.TypeOf(q)和reflect.ValueOf(q)獲取了結(jié)構(gòu)體order的類(lèi)型和值,然后我們?cè)購(gòu)难h(huán)里對(duì)它的成員進(jìn)行一個(gè)遍歷,并將所有成員的名稱(chēng)和類(lèi)型打印了出來(lái)。這樣,一個(gè)結(jié)構(gòu)體的所有信息就都暴露在我們面前。

2.斷言

Go語(yǔ)言里面有一個(gè)語(yǔ)法,可以直接判斷是否是該類(lèi)型的變量: value, ok = element.(T),這里value就是變量的值,ok是一個(gè)bool類(lèi)型,element是interface變量,T是斷言的類(lèi)型。

如果element里面確實(shí)存儲(chǔ)了T類(lèi)型的數(shù)值,那么ok返回true,否則返回false。

package main

import (
  "fmt"
)

type Order struct {
  ordId   int
  customerId int
  callback func()
}

func main() {
  var i interface{}
  i = Order{
    ordId:   456,
    customerId: 56,
  }
  value, ok := i.(Order)
  if !ok {
    fmt.Println("It's not ok for type Order")
    return
  }
  fmt.Println("The value is ", value)
}

輸出:

The value is  {456 56 nil>}

常見(jiàn)的還有用switch來(lái)斷言:

package main

import (
  "fmt"
)

type Order struct {
  ordId   int
  customerId int
  callback func()
}

func main() {
  var i interface{}
  i = Order{
    ordId:   456,
    customerId: 56,
  }
  switch value := i.(type) {
    case int:
      fmt.Printf("It is an int and its value is %d\n", value)
    case string:
      fmt.Printf("It is a string and its value is %s\n", value)
    case Order:
      fmt.Printf("It is a Order and its value is %v\n", value)
    default:
      fmt.Println("It is of a different type")
    }
}

輸出:

It is a Order and its value is {456 56 nil>}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 淺談golang類(lèi)型斷言,失敗類(lèi)型斷言返回值問(wèn)題
  • Golang斷言判斷值類(lèi)型的實(shí)現(xiàn)方法

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang之反射和斷言的具體使用》,本文關(guān)鍵詞  golang,之,反射,和,斷言,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang之反射和斷言的具體使用》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于golang之反射和斷言的具體使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    免费成人在线网站| 日韩色在线观看| 韩国精品主播一区二区在线观看| 亚洲欧洲精品天堂一级| 欧美一级片在线看| 欧美成人精品1314www| 婷婷一区二区三区| 亚洲夂夂婷婷色拍ww47| 亚洲第一福利一区| 一本到一区二区三区| 欧美伦理电影网| 亚洲精品国产第一综合99久久 | 亚洲激情五月婷婷| 肉肉av福利一精品导航| 国产在线视视频有精品| 国产成人免费xxxxxxxx| yourporn久久国产精品| 久久伊99综合婷婷久久伊| av男人天堂一区| 91精品国产福利| 国产日韩欧美精品电影三级在线| 国产精品短视频| 亚洲午夜免费视频| 免费一区二区视频| 欧美丝袜丝交足nylons图片| 亚洲精品在线电影| 日韩国产欧美视频| 97久久精品人人澡人人爽| 26uuu色噜噜精品一区| 亚洲午夜av在线| 成人黄色av网站在线| 日韩欧美久久久| 日本不卡一区二区三区| 欧美精品乱码久久久久久按摩 | 亚洲一区二区高清| 中文乱码免费一区二区| 亚洲丝袜精品丝袜在线| 国产一区二区剧情av在线| 欧美性色黄大片手机版| 精品一区二区三区的国产在线播放 | 欧美tk—视频vk| 91日韩一区二区三区| 亚洲色图一区二区| 国产精品亲子乱子伦xxxx裸| 日本大香伊一区二区三区| 丝袜亚洲另类欧美| 亚洲欧洲成人精品av97| 精品理论电影在线观看| 欧美人动与zoxxxx乱| 色婷婷精品大在线视频| 大白屁股一区二区视频| 国产宾馆实践打屁股91| 久久成人羞羞网站| 国产成人在线电影| 成人高清视频在线| 欧美亚洲动漫另类| 国产精品欧美综合在线| 日韩欧美一级精品久久| 亚洲6080在线| 国产成人久久精品77777最新版本| 7777精品伊人久久久大香线蕉最新版| 亚洲精品一区二区在线观看| 亚洲人123区| 成人小视频在线| 国产精品激情偷乱一区二区∴| 色综合久久中文综合久久97| 激情国产一区二区| 亚洲国产精品一区二区久久| 亚洲理论在线观看| 免费一级欧美片在线观看| 国产成人日日夜夜| 在线精品视频免费播放| 99久久婷婷国产| 亚洲已满18点击进入久久| 欧美xxxx在线观看| 精品国产乱子伦一区| 亚洲精品第1页| 国产成人精品影视| 白白色亚洲国产精品| 国模少妇一区二区三区| 五月天精品一区二区三区| 午夜久久久影院| 亚洲国产精品成人综合色在线婷婷| 综合欧美亚洲日本| 青青草国产成人av片免费| caoporen国产精品视频| 欧美电影免费观看高清完整版在线观看| 日韩欧美国产午夜精品| 日韩精品在线一区二区| 欧美激情一区二区| 麻豆专区一区二区三区四区五区| 欧美精品乱码久久久久久按摩 | 国产成人午夜片在线观看高清观看| 日本久久电影网| 欧美国产日本视频| 亚洲午夜免费福利视频| 欧美丝袜自拍制服另类| 亚洲日本青草视频在线怡红院| 国产一区二区免费在线| 国产精品蜜臀av| 日本精品视频一区二区三区| 久久精子c满五个校花| 一区二区中文视频| 国产91精品一区二区| 精品日韩一区二区三区| 国产麻豆视频一区二区| 婷婷中文字幕综合| 欧美va在线播放| 捆绑变态av一区二区三区| 99久久精品免费| 亚洲永久精品大片| 欧美一级精品在线| 成a人片国产精品| 男女男精品视频| 日韩电影在线观看网站| 91精品国产一区二区三区| 午夜电影网一区| 17c精品麻豆一区二区免费| 色一情一伦一子一伦一区| 日韩国产精品久久久| 成人免费毛片高清视频| 92精品国产成人观看免费| 精品一区二区三区视频在线观看| 亚洲靠逼com| 日韩伦理av电影| 久久久久久久一区| 91精品一区二区三区久久久久久| 国产成人免费av在线| 水蜜桃久久夜色精品一区的特点| 国产色产综合色产在线视频| 在线不卡免费av| 在线视频一区二区三区| 国产老女人精品毛片久久| 久久狠狠亚洲综合| 国产成人免费视| 欧美视频在线观看一区| 91丝袜美女网| 91女神在线视频| 欧美精品xxxxbbbb| 国产欧美一区二区精品久导航| 国产日韩欧美电影| 在线精品亚洲一区二区不卡| 欧美亚日韩国产aⅴ精品中极品| 亚洲精品在线免费观看视频| 久久精品99国产精品| 奇米色一区二区| 国产成人综合在线| 九九九精品视频| 日韩电影在线看| 国产+成+人+亚洲欧洲自线| 欧美麻豆精品久久久久久| 国产精品天美传媒沈樵| 亚洲日本在线看| 精品无码三级在线观看视频| 日本电影欧美片| 91精品国产日韩91久久久久久| 国产丝袜美腿一区二区三区| 欧美电影免费观看高清完整版在线| 国产精品素人一区二区| 视频一区在线播放| 欧美放荡的少妇| 波多野结衣在线一区| 91麻豆精品国产无毒不卡在线观看| 26uuu欧美| 成人av高清在线| 久久精品视频网| 国产欧美一区二区三区在线老狼| 婷婷成人综合网| 色8久久人人97超碰香蕉987| 国产精品你懂的| 欧美一区二区观看视频| 亚洲日本va在线观看| 中文字幕日本不卡| 欧美精品在线视频| 国产色综合一区| 日本道在线观看一区二区| 亚洲男同性恋视频| 这里只有精品视频在线观看| 丁香激情综合国产| 欧美激情一区二区三区不卡| 91麻豆文化传媒在线观看| 全部av―极品视觉盛宴亚洲| 在线不卡中文字幕| 美女性感视频久久| 国产精品高潮久久久久无| 欧美日韩国产区一| 久久精品综合网| 久久久久久综合| 国产真实乱子伦精品视频| 国产精品久久久久婷婷二区次| 91视频国产观看| 国产精品一区二区男女羞羞无遮挡| 777午夜精品视频在线播放| 亚洲一区二区视频在线观看| 久久久久久久久久看片| 日本韩国视频一区二区| 亚洲精品国久久99热| 国内精品写真在线观看| 亚洲一级片在线观看| 欧美另类变人与禽xxxxx|