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

主頁 > 知識庫 > Golang中interface{}轉為數組的操作

Golang中interface{}轉為數組的操作

熱門標簽:excel地圖標注分布數據 評價高的400電話辦理 百度地圖標注后傳給手機 壽光微信地圖標注 阿克蘇地圖標注 外呼系統顯本地手機號 電話機器人軟件免費 外呼系統用什么卡 涿州代理外呼系統

interface{} 轉為普通類型

我們都知道在golang中interface{}可以代表任何類型,對于像int64、bool、string等這些簡單類型,interface{}類型轉為這些簡單類型時,直接使用

p, ok := t.(bool)
p, ok := t.(int64)

如果ok==true的話,就已經類型轉換成功。

假設有這樣一個場景,我們有一個函數有返回值,但是返回值的類型不定,所以我們的返回值類型只能以接口來代替了。

返回接口類型之后,我們就要對其類型進行判斷然后進行類型轉換。如果返回的是數組的話,我們就不能像上面那樣直接進行轉換了。

那有什么辦法呢?

可以考慮使用reflect.Typeof(mm).Kind()。

func generate() (interface{}, bool) {
	//s := []string{"123", "345", "abc"}
	//s := 123
	s := "mmm"
	return s, true
}
func test() {
	origin, ok := generate()
	if ok {
		switch reflect.TypeOf(origin).Kind() {
		case reflect.Slice, reflect.Array:
			s := reflect.ValueOf(origin)
			for i := 0; i  s.Len(); i++ {
				fmt.Println(s.Index(i))
			}
		case reflect.String:
			s := reflect.ValueOf(origin)
			fmt.Println(s.String(), "I am a string type variable.")
		case reflect.Int:
			s := reflect.ValueOf(origin)
			t := s.Int()
			fmt.Println(t, " I am a int type variable.")
		}
	}
}

generate()函數有兩個返回值,一個是接口類型,一個是bool類型。

我們只對第一個參數進行處理,首先使用reflect.TypeOf(mm).Kind()獲得mm的類型,然后采用switch語句來判斷mm的類型,類型判斷完之后進入相應的case,然后通過reflect.ValueOf(mm)來mm的值取出來,如果mm本身是個數組的話,那么s也是一個數組,就可以進行遍歷操作了。

總結

1、對于我們已知返回值是哪種類型的情況下,可以直接將返回值進行類型轉換,像上面那種轉為普通類型的方法一樣。

2、對于返回值類型不是已知的情況下,可以考慮使用reflect.TypeOf()的方式。

補充:golang interface{}轉換成struct結構體的兩種方法

1.使用斷言,強制轉換

 p, ok := (Value).(user)
     if ok {
         fmt.Println("id:" + p.Id)
         fmt.Println("name:" + p.Name)
     } else {
         fmt.Println("can not convert")
     }

2.json序列化

resByre,resByteErr:=json.Marshal(ResponseData)
 if resByteErr != nil {
  c.Data(utils.ErrorResult("讀取信息失敗" + resByteErr.Error()))
  return
 }
 var newData MnConfig
 jsonRes:=json.Unmarshal(resByre,newData)
 if jsonRes != nil {
  c.Data(utils.ErrorResult("讀取信息失敗" + jsonRes.Error()))
  return
 }

實例:

package main 
import (
 "encoding/json"
 "fmt"
)
 
type user struct {
 Id int `json:"id"`
 Name string `json:"name"`
} 
 
func main() { 
 newUser:=user{
  Id:   1,
  Name: "杉杉",
 }
 
 var newInterface1 interface{}
 
 //第一種使用interface
 newInterface1=newUser
 fmt.Printf("使用interface: %v",newInterface1.(user))
 
 //第二種使用json
 var newInterface2 interface{}
 newInterface2=newUser
 resByre, resByteErr := json.Marshal(newInterface2)
 if resByteErr != nil {
  fmt.Printf("%v",resByteErr)
  return
 }
 var newData user
 jsonRes := json.Unmarshal(resByre, newData)
 if jsonRes != nil {
  fmt.Printf("%v",jsonRes)
  return
 }
 fmt.Printf("使用 json: %v",newData)
 
}

結果:

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

您可能感興趣的文章:
  • 淺談Golang 嵌套 interface 的賦值問題
  • Golang 實現interface類型轉string類型
  • 解決golang 反射interface{}做零值判斷的一個重大坑
  • 基于go interface{}==nil 的幾種坑及原理分析
  • golang interface判斷為空nil的實現代碼
  • 詳解Golang語言中的interface
  • 使用go的interface案例實現多態范式操作
  • go 類型轉換方式(interface 類型的轉換)

標簽:重慶 梅河口 雞西 銅川 欽州 蘭州 吐魯番 汕頭

巨人網絡通訊聲明:本文標題《Golang中interface{}轉為數組的操作》,本文關鍵詞  Golang,中,interface,轉為,數組,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang中interface{}轉為數組的操作》相關的同類信息!
  • 本頁收集關于Golang中interface{}轉為數組的操作的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    eeuss鲁片一区二区三区 | 欧美电影在哪看比较好| 高清成人在线观看| **性色生活片久久毛片| 青青草国产精品亚洲专区无| 91精品久久久久久久91蜜桃| 久久福利视频一区二区| 国产亚洲精品7777| 日韩一区二区视频在线观看| 亚洲第一av色| 亚洲日本欧美天堂| 精品免费日韩av| 欧美丰满美乳xxx高潮www| 成人激情av网| 久久99久久久久| 石原莉奈在线亚洲三区| 亚洲同性gay激情无套| 日韩精品资源二区在线| 欧美日韩日日骚| 色狠狠一区二区三区香蕉| 久久成人综合网| 狠狠狠色丁香婷婷综合激情| 亚洲图片有声小说| 亚洲一区在线观看网站| 最新不卡av在线| 亚洲精品乱码久久久久久久久 | 亚洲精品视频免费看| 久久婷婷一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 国产精品一区二区黑丝| 国产成人欧美日韩在线电影| 国产精品一二三四五| 欧美日韩亚洲综合一区| 国产精品免费免费| 久久国产精品区| 欧美酷刑日本凌虐凌虐| 日本一区二区三区dvd视频在线| 亚洲第一福利一区| 成人h动漫精品一区二区| 日韩欧美高清一区| 日本aⅴ亚洲精品中文乱码| 欧美做爰猛烈大尺度电影无法无天| 91精品国产色综合久久不卡电影| 国产精品成人午夜| 国产激情一区二区三区四区| 日韩欧美综合在线| 不卡视频在线观看| 亚洲乱码国产乱码精品精的特点| 欧美日韩视频专区在线播放| 最新日韩在线视频| 福利一区二区在线| 国产精品传媒在线| 在线亚洲精品福利网址导航| 最新国产精品久久精品| 成人一区在线观看| 国产精品美女久久久久久久久 | 日韩一区二区三区免费看| 午夜精品福利一区二区蜜股av| 欧美精品日韩一区| 国产综合色精品一区二区三区| 精品国产免费久久| 不卡在线观看av| 五月婷婷综合网| 日韩一级在线观看| 丰满岳乱妇一区二区三区| 国产视频一区二区在线| 成人18视频日本| 青青青伊人色综合久久| 亚洲最大成人综合| 欧美日韩国产免费| 国产成人av自拍| 青娱乐精品视频在线| 综合久久久久久| 91精品国产91久久综合桃花| 国产精品一二三| 一区二区免费在线| 国产精品女主播av| 欧美男男青年gay1069videost | 99久久婷婷国产综合精品| 一区二区三区在线视频免费| 91精品国产入口| 欧美日韩三级一区二区| 一本大道久久a久久精品综合| 国产一区二区三区免费观看| 亚洲国产中文字幕在线视频综合| 中文一区二区完整视频在线观看| 欧美人与禽zozo性伦| 欧美中文字幕一区二区三区| 日本丶国产丶欧美色综合| 9人人澡人人爽人人精品| 国产一区二区三区不卡在线观看| 久草在线在线精品观看| 九九视频精品免费| 国内一区二区在线| 成人美女视频在线观看18| av福利精品导航| 色88888久久久久久影院按摩| 欧美综合在线视频| 在线不卡中文字幕播放| 久久综合九色综合欧美98| 久久精品欧美一区二区三区不卡 | 日韩欧美专区在线| 欧美大片一区二区| 专区另类欧美日韩| 视频在线观看国产精品| 国产在线观看一区二区| 91麻豆自制传媒国产之光| 欧美午夜片在线观看| 日韩亚洲欧美一区| 国产精品色在线观看| 免费在线观看精品| 99在线精品一区二区三区| 911精品国产一区二区在线| 久久综合九色综合欧美亚洲| 一区二区三区在线视频播放| 成人av高清在线| 日韩精品一区二区三区三区免费 | 国产一区二区精品久久99| 国产成人综合视频| 国产精品午夜在线观看| 高清免费成人av| 亚洲少妇最新在线视频| 麻豆成人久久精品二区三区小说| 91婷婷韩国欧美一区二区| 久久精品水蜜桃av综合天堂| 五月婷婷久久丁香| 欧美图区在线视频| 一区二区三区成人| 91片黄在线观看| 亚洲精品乱码久久久久久黑人| 成人免费看视频| 亚洲国产岛国毛片在线| 国产精品小仙女| 欧美国产日产图区| 成人美女在线视频| 亚洲人亚洲人成电影网站色| 成人h动漫精品| 亚洲精品成人悠悠色影视| 欧美色综合久久| 日本午夜精品视频在线观看| 日韩精品一区二区三区四区| 看片的网站亚洲| 中文字幕一区免费在线观看| 在线免费观看不卡av| 视频一区视频二区中文| 欧美videossexotv100| 成人性生交大合| 一区二区三区加勒比av| 久久久久久一二三区| 99久久精品国产观看| 麻豆91精品视频| 亚洲一二三四在线观看| 日韩欧美一区二区久久婷婷| 一本一本久久a久久精品综合麻豆| 日韩成人午夜精品| 成人免费在线播放视频| 欧美电影免费观看高清完整版在| 日本道精品一区二区三区| 成人午夜免费视频| 韩国精品主播一区二区在线观看| 亚洲欧洲制服丝袜| 日本一区二区三区四区在线视频| 欧美色视频在线观看| 色综合天天性综合| 国产麻豆欧美日韩一区| 极品尤物av久久免费看| 婷婷开心激情综合| 亚洲女性喷水在线观看一区| 国产无人区一区二区三区| 欧美丰满少妇xxxbbb| 6080午夜不卡| 欧美日韩在线播| 欧美日韩一级片在线观看| 欧美亚洲高清一区二区三区不卡| 福利一区福利二区| 成人深夜在线观看| 成人一级视频在线观看| www.亚洲人| 在线观看av一区二区| 91麻豆高清视频| 欧美日韩亚洲综合| 欧美一区二区黄| 国产亚洲一区字幕| 自拍偷拍亚洲激情| 视频在线观看一区| 成人综合在线网站| 欧美喷潮久久久xxxxx| 久久午夜色播影院免费高清| 亚洲视频在线一区二区| 久久99热这里只有精品| aaa亚洲精品| 色美美综合视频| 久久精品免费在线观看| 亚洲一区二区av电影| 国精产品一区一区三区mba视频| 91福利精品第一导航| 亚洲国产成人午夜在线一区 | 亚洲精品高清视频在线观看| 亚洲二区在线视频| 99精品视频一区|