返回顶部
首页 > 资讯 > 后端开发 > GO >怎么在Golang中将interface{}转换为数组
  • 834
分享到

怎么在Golang中将interface{}转换为数组

2023-06-14 22:06:46 834人浏览 独家记忆
摘要

怎么在golang中将interface{}转换为数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Golang适合做什么golang可以做服务器端开发,但golang很适合做

怎么在golang中将interface{}转换为数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Golang适合做什么

golang可以做服务器开发,但golang很适合做日志处理、数据打包、虚拟机处理、数据库代理等工作。在网络编程方面,它还广泛应用于WEB应用、api应用等领域。

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 := 123s := "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也是一个数组,就可以进行遍历操作了。

总结

对于我们已知返回值是哪种类型的情况下,可以直接将返回值进行类型转换,像上面那种转为普通类型的方法一样。

对于返回值类型不是已知的情况下,可以考虑使用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{}转换为数组的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网GO频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么在Golang中将interface{}转换为数组

本文链接: https://lsjlt.com/news/275654.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Golang中将interface{}转换为数组
    怎么在Golang中将interface{}转换为数组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。golang适合做什么golang可以做服务器端开发,但golang很适合做...
    99+
    2023-06-14
  • Golang将interface{}转换为N大小的数组
    小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《Golang将interface{}转换为N大小的数组》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多...
    99+
    2024-04-04
  • Golang中interface{}转为数组的操作
    interface{} 转为普通类型 我们都知道在golang中interface{}可以代表任何类型,对于像int64、bool、string等这些简单类型,interface{}...
    99+
    2024-04-02
  • 怎么在php中将数组转换为json
    怎么在php中将数组转换为json?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php数组转json的函数是json_encode()。json_encode(...
    99+
    2023-06-14
  • 怎么在golang中将Int转换为string
    这期内容当中小编将会给大家带来有关怎么在golang中将Int转换为string,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是golanggolang 是Google开发的一种静态强类型、编译型、并...
    99+
    2023-06-14
  • 怎么在PHP中将数组数据转换为json
    怎么在PHP中将数组数据转换为json?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Json的具体形式是:对象对象是一个无序的“‘名称/值'对”集合。一...
    99+
    2023-06-14
  • 怎么在php中将数组转换为字符串
    怎么在php中将数组转换为字符串?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hy...
    99+
    2023-06-14
  • javascript中怎么将数组转换为string
    javascript中怎么将数组转换为string,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 实现方法有:1、...
    99+
    2024-04-02
  • php中怎么怎么将数组转换为xml
    这篇文章给大家介绍php中怎么怎么将数组转换为xml,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php将数组转为xml的方法:首先创建一个PHP示例文件;然后通过“function data_to_xml($data...
    99+
    2023-06-20
  • 怎么在php中将数组转换为json字符串
    本篇文章给大家分享的是有关怎么在php中将数组转换为json字符串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。...
    99+
    2023-06-14
  • 在 Python 中将字符串转换为数组
    使用 str.split() 方法将字符串转换为数组,例如 array = string.split(',')。 str.split() 方法将在每次出现提供的分隔符时将字符串拆分为一个列表。 str...
    99+
    2023-09-04
    python 数据结构 开发语言
  • 在 PHP 中将数组转换为 CSV 文件
    本篇文章将演示在 PHP 中使用 fputcsv() 函数将数组转换为 CSV 文件。 在 PHP 中使用 fputcsv() 将数组转换为 CSV 文件 fputcsv() 首先将一行格式化为...
    99+
    2024-02-27
  • 在 PHP 中将 CSV 文件转换为数组
    逗号分隔值 (CSV) 文件是数据管道的重要组成部分。 无论使用何种编程语言,我们的应用程序都可以使用 CSV。 CSV 文件常用于以行和列格式存储数据。 因此,当我们在 PHP 应用程序中处理 C...
    99+
    2024-02-27
  • Java中将数组转换为List
    今天就跟大家聊聊有关Java中将数组转换为List,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.最常见方式(未必最佳)通过 Arrays.asList(strArray) &nb...
    99+
    2023-06-16
  • golang中怎么将string转为字节数组(byte)
    Go语言是一门新兴的高效编程语言,被广泛应用于各种领域,特别是服务器端开发。其中,字符串处理是Go语言中的一个重要部分。本文将介绍如何将字符串转换为字节数组(byte),即 golang string 转 byte。什么是字节数组?在Go语...
    99+
    2023-05-14
    Golang go语言
  • PHP中怎么将数组转换为字符串
    PHP中怎么将数组转换为字符串,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1,如何将一个字符转换成一个数组解决方法:str_split()函数示例如下:$biuuu ...
    99+
    2023-06-17
  • C#中怎么将结构体转换为数组
    本篇文章给大家分享的是有关C#中怎么将结构体转换为数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。(1)解决C#结构体数组间的转化之定义结构体://命名空间 &nb...
    99+
    2023-06-18
  • php中怎么将字符串转换为数组
    在PHP中,将字符串转换为数组是一个常见的操作,特别是在解析取自数据库或文件的数据时。下面我们会介绍几种转换字符串为数组的方法,帮助您更好地理解并掌握这项常用技能。1.使用explode函数PHP中有一个内置函数叫explode(),可以用...
    99+
    2023-05-14
  • PHP中怎么将数组转换为JSON格式
    在PHP中,可以使用json_encode()函数将数组转换为JSON格式。例如: $myArray = array('f...
    99+
    2024-04-02
  • 如何在python中将numpy数组转换为list
    如何在python中将numpy数组转换为list?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenSta...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作