亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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{}轉為數組的操作的相關信息資訊供網民參考!
  • 推薦文章
    香蕉视频久久| 精品视频在线看| 久久国产一久久高清| 九九精品影院| 国产网站免费视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美爱爱网| 精品国产三级a∨在线观看| 超级乱淫伦动漫| 欧美大片aaaa一级毛片| 国产亚洲精品成人a在线| 国产视频一区二区在线观看| 亚久久伊人精品青青草原2020| 国产精品免费久久| 一级女性全黄生活片免费| 成人高清免费| 九九免费精品视频| 成人影院一区二区三区| 91麻豆精品国产自产在线| 精品国产亚洲一区二区三区| 久久国产一久久高清| 欧美大片aaaa一级毛片| 欧美电影免费看大全| 一级毛片看真人在线视频| 成人免费福利片在线观看| 日韩中文字幕一区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美日本免费| 成人免费网站视频ww| 中文字幕一区二区三区精彩视频| 九九九国产| 日韩专区一区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 天天做日日爱| 成人影院一区二区三区| 青青青草影院| 一级女性大黄生活片免费| 欧美日本免费| 精品视频免费看| 天天色色色| 91麻豆tv| 日韩在线观看视频网站| 精品视频在线观看免费| 日韩中文字幕一区二区不卡| 国产成人女人在线视频观看 | 国产伦理精品| 韩国毛片基地| 色综合久久手机在线| 国产极品精频在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品视频在线观看一区二区三区| 黄色免费三级| 成人在免费观看视频国产| 91麻豆tv| 国产精品自拍在线观看| 日韩中文字幕在线播放| 亚洲精品永久一区| 亚飞与亚基在线观看| 免费国产在线观看| 黄视频网站免费看| a级毛片免费观看网站| 一级女性大黄生活片免费| 欧美大片a一级毛片视频| 国产a毛片| 国产麻豆精品免费密入口| 成人a大片高清在线观看| 国产亚洲精品成人a在线| 久久国产精品只做精品| 久草免费在线色站| 精品视频免费在线| 韩国三级视频网站| 午夜欧美成人久久久久久| 久久国产一久久高清| 国产91精品一区二区| 中文字幕一区二区三区 精品| 日本特黄特黄aaaaa大片| 九九久久99综合一区二区| 99久久精品国产麻豆| 国产网站免费| 日韩中文字幕一区二区不卡| 成人免费网站视频ww| 国产麻豆精品hdvideoss| 免费一级生活片| 精品国产一区二区三区久久久狼| 色综合久久天天综合观看| 精品久久久久久中文字幕一区| 成人影院一区二区三区| 欧美激情一区二区三区在线| 午夜在线影院| 精品视频在线观看视频免费视频| 美女免费精品视频在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产91精品系列在线观看| 亚洲第一色在线| 91麻豆精品国产高清在线| 精品国产三级a| 欧美电影免费| 国产网站免费视频| 精品视频在线观看免费| 亚洲精品中文一区不卡| 天天色成人| 日日夜夜婷婷| 国产网站免费视频| 国产不卡福利| 99久久精品费精品国产一区二区| 青青久久网| 成人av在线播放| 国产不卡高清| 二级特黄绝大片免费视频大片| 日本特黄特色aaa大片免费| 成人免费观看男女羞羞视频| 日韩在线观看免费完整版视频| 国产不卡福利| 亚洲精品久久久中文字| 欧美大片a一级毛片视频| 999久久狠狠免费精品| 欧美激情一区二区三区视频高清| 久久成人亚洲| 国产一区二区精品在线观看| 99久久精品国产免费| 日本特黄特色aaa大片免费| 亚欧成人乱码一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 色综合久久天天综线观看| 色综合久久久久综合体桃花网| 精品久久久久久中文| 中文字幕一区二区三区 精品| 色综合久久天天综合观看| 九九免费精品视频| 久草免费在线色站| 欧美日本二区| 四虎影视精品永久免费网站 | 国产91丝袜高跟系列| 91麻豆爱豆果冻天美星空| 四虎影视库| 九九久久国产精品大片| 日韩中文字幕在线亚洲一区 | 欧美大片一区| 99久久精品国产免费| 黄视频网站免费| 可以免费看毛片的网站| 国产精品123| 黄色福利片| 青青青草影院| 精品国产一区二区三区久| 国产91精品一区| 国产伦精品一区三区视频| 日韩在线观看免费完整版视频| 国产福利免费视频| 国产伦久视频免费观看视频| 国产麻豆精品| 久久99中文字幕| 亚洲第一色在线| 国产伦精品一区三区视频| 国产精品自拍在线观看| 国产一区免费在线观看| 欧美激情一区二区三区在线| 午夜在线影院| 欧美爱色| 亚久久伊人精品青青草原2020| 韩国毛片免费| 国产高清在线精品一区二区| 国产91精品系列在线观看| 999精品在线| 亚洲女人国产香蕉久久精品| 日韩免费在线视频| 国产一区二区精品久久91| 台湾毛片| 黄色免费三级| 成人av在线播放| 精品国产亚洲人成在线| 国产不卡福利| 久久国产一久久高清| 亚洲 欧美 91| 你懂的福利视频| 青青青草视频在线观看| 国产91素人搭讪系列天堂| 日韩中文字幕在线播放| 国产精品自拍在线| 精品美女| 日本特黄一级| 精品国产一区二区三区久久久蜜臀| 日韩av片免费播放| 色综合久久天天综合| 黄视频网站在线免费观看| 日韩免费片| 欧美爱爱网| 亚洲 男人 天堂| 日本特黄特色aa大片免费| 四虎论坛| 欧美大片a一级毛片视频| 久久福利影视| 久久成人综合网| 尤物视频网站在线| 日韩欧美一及在线播放| 国产91精品露脸国语对白| 日本特黄特色aaa大片免费| 午夜在线亚洲| 亚欧乱色一区二区三区|