返回顶部
首页 > 资讯 > 后端开发 > GO >函数接收多类型的数组参数
  • 443
分享到

函数接收多类型的数组参数

2024-04-04 23:04:07 443人浏览 泡泡鱼
摘要

在golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《函数接收多类型的数组参数》,聊聊,希望可以

golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《函数接收多类型的数组参数》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我想使用通用函数来解组不同类型:

type Foo struct {
  Name    string
  Another string
}

type Bar struct {
  Name  string
  Some  string
}

func unmarshal(data []byte, val *[]map[string]interface{}) {
  err := JSON.Unmarshal(data, val)

  if err != nil || (*val)[0]["Name"] == "" {
    *val = nil
  }
}

func main() {
  var foos []Foo
  var bars []Bar

  // fooData and barData are jsON strings retrieved from database
  unmarshal(fooData, &foos)
  unmarshal(barData, &bars)
}

我收到类似 cannot use &foo (type *[]foo) as type *[]map[string]interface {} in argument to unmarshal 的错误。

我尝试使用 val 接口{} 作为参数,但它不支持索引

那我怎样才能实现目标呢?谢谢。


解决方案


要使用任意切片类型,请将参数声明为类型 interface{} 并使用 reflection 访问该值:

func unmarshal(data []byte, v interface{}) {
    err := json.Unmarshal(data, v)
    rv := reflect.ValueOf(v).Elem()

    if err != nil || rv.Len() == 0 || rv.Index(0).FieldByName("Name").Interface() == "" {
        rv.Set(reflect.Zero(rv.Type()))
    }
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《函数接收多类型的数组参数》文章吧,也可关注编程网公众号了解相关技术文章。

您可能感兴趣的文档:

--结束END--

本文标题: 函数接收多类型的数组参数

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

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

猜你喜欢
  • 函数接收多类型的数组参数
    在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《函数接收多类型的数组参数》,聊聊,希望可以...
    99+
    2024-04-04
  • python函数怎么接收不同类型的参数
    本文小编为大家详细介绍“python函数怎么接收不同类型的参数”,内容详细,步骤清晰,细节处理妥当,希望这篇“python函数怎么接收不同类型的参数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。说明在定义函数时,...
    99+
    2023-06-30
  • BIRT如何接收数组型参数
    这篇文章给大家介绍BIRT如何接收数组型参数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。由于BIRT不直接支持数组型参数参与查询,即:无法把一个数组直接传给DataSet执行带in的SQL,所以很难直接在数据集中把S...
    99+
    2023-06-03
  • Springboot 接口需要接收参数类型是数组问题
    目录接口需要接收参数类型是数组多个参以“,”拼接传递即可那么除了这样,我们还能怎么协调呢? springboot接口接收数组及多个参数问题若接口中需...
    99+
    2024-04-02
  • SpringMVC参数的传递之如何接收List数组类型的数据
    目录前言在了解下面参数如何传递前先记住两个结论1.前台发送String和基本类型数组前台数据的发送(发送json对象(或js对象)后台接收数据2.前台发送String类型和对象数组一...
    99+
    2022-11-13
    SpringMVC参数传递 接收数组 List数组类型数据
  • 使用springmvc参数接收boolean类型参数的问题
    目录springmvc参数接收boolean类型参数如何接收以is开头的boolean类型的参数开发环境问题小结一下springmvc参数接收boolean类型参数 在开发项目过程中...
    99+
    2024-04-02
  • springboot:接收date类型的参数方式
    目录springboot:接收date类型的参数springboot 传递Date等实体参数时候报错springboot:接收date类型的参数 今天有个postmapping方法,...
    99+
    2024-04-02
  • golang函数接口类型参数传递
    接口类型作为函数参数允许函数接受实现相同接口方法的不同具体类型的对象。这增强了代码灵活性,促进代码解耦,提高可扩展性和可重用性。具体步骤如下:定义一个接口,指定要实现的方法。定义一个函数...
    99+
    2024-04-22
    接口 类型 golang 高可扩展性
  • php接收ios数组参数吗
    答案是肯定的,PHP可以接收来自iOS的数组参数。在iOS的开发中,可以使用以下方法将数组参数发送到PHP服务器:使用GET方法发送参数:可以将数组参数附加到URL的查询字符串中,类似于以下格式:http://example.com/api...
    99+
    2023-05-19
  • PHP 函数参数的类型限制
    php 函数参数可以指定类型限制,以限制函数只接收特定类型的数据,包括:bool、int、float、string、array、object、callable、iterable。此限制提...
    99+
    2024-04-19
    php 类型限制 可迭代对象 代码可读性
  • PHP 函数参数可以接受哪些数据类型?
    大多数 php 函数参数接受多种数据类型,包括标量类型(整数、浮点数、字符串、布尔值)、复合类型(数组、对象)和其他类型(null、资源引用)。如函数 myfunction 可接受字符串...
    99+
    2024-04-11
    数据类型 php
  • 怎么在python中接收不同类型的参数
    本篇文章为大家展示了怎么在python中接收不同类型的参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬...
    99+
    2023-06-14
  • PHP 匿名函数如何接收参数?
    php 匿名函数接收参数的语法为: function($argument1, $argument2, ..., $argumentn) { // 函数体}。参数按值或按引用传递(使用 &...
    99+
    2024-04-10
    php 匿名函数
  • Python中函数的参数类型详解
    目录1、Python的函数参数的类型2、Python的必传参数3、关键字参数4、默认参数5、不定长参数1、Python的函数参数的类型 必传参数:调用函数时必须传入的参数,函数定义时...
    99+
    2024-04-02
  • Python中的函数参数类型检查
    目录Python函数参数类型检查下面我们用装饰器来实现总结Python函数参数类型检查 有一个很经典的笑话: 三个月之前,只有我和上帝知道这代码是干什么的。 现在,只有上帝知道了。 ...
    99+
    2022-12-19
    Python函数 函数参数类型检查 Python函数参数
  • PHP 函数参数类型的合法值
    php 函数参数类型的合法值包括:1. 数组,2. 布尔,3. 可调用方法,4. 浮点数,5. 整数,6. 对象,7. 资源,8. 字符串。例如,myfunction(int $numb...
    99+
    2024-04-19
    参数类型 类型检验
  • sql中sum函数用什么类型接收
    sum() 函数可以计算整数和小数数据类型的总和:整数:tinyint、smallint、integer、bigint小数:decimal(precision, scale)、numer...
    99+
    2024-05-10
  • php函数参数类型有哪些
    php中函数的参数类型有默认参数、可变参数和遗漏参数三种默认参数php中默认参数是指在声明函数时的赋值参数,默认参数一般在函数的最后面,调用默认参数时可以不传递参数。可变参数php中可变参数是指一个函数有多个可变数目的参数,一般使用func...
    99+
    2024-04-02
  • PHP 函数参数类型有哪些?
    php 函数参数类型包括标量类型(整数、浮点数、字符串、布尔值、空值)、复合类型(数组、对象)和特殊类型(回调函数、可变参数)。函数可自动转换不同类型参数,但也可通过类型声明强制特定类型...
    99+
    2024-04-10
    php 函数参数 隐式转换
  • 无法推断函数构造函数的泛型参数中的类型
    php小编柚子将为大家解答一个常见的问题:在构造函数的泛型参数中,无法推断出类型的原因。在PHP中,泛型参数的类型推断是通过参数的默认值来实现的。然而,在构造函数中,由于参数是在对象创...
    99+
    2024-02-09
    编译错误
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作