返回顶部
首页 > 资讯 > 精选 >如何从 Go 中的 for 循环返回接口列表?
  • 160
分享到

如何从 Go 中的 for 循环返回接口列表?

go语言 2024-02-09 12:02:36 160人浏览 独家记忆
摘要

在Go语言中,我们可以通过for循环来遍历数组、切片、映射等数据结构。但是,有时候我们需要在循环中返回一个接口列表。这是一个常见的需求,因为接口是一种抽象类型,可以代表多种具体类型。本

Go语言中,我们可以通过for循环来遍历数组、切片、映射等数据结构。但是,有时候我们需要在循环中返回一个接口列表。这是一个常见的需求,因为接口是一种抽象类型,可以代表多种具体类型。本文将介绍如何在Go中使用for循环返回接口列表。首先,我们需要理解Go中的接口类型和类型断言的概念。

问题内容

如何从 go 中的 for 循环返回接口列表? 假设我有如下数据:

id name project_type
1 project_name 1
2 project_name 1
3 project_name 1
4 project_name 2
5 project_name 2
6 project_name 3
7 project_name 3
8 project_name 3
9 project_name 4
10 project_name 4

我可以使用下面的go代码来获取project_type=1和project_type=2的两个列表,

func (d *db) projectlist(type, uid string, size uint64) (interface{}, interface{}, error) {
    type resp struct {
        name            string  `JSON:"name"`
        id             string  `json:"id"`
        projecttype    string  `json:"project_type"`

    }

    var project_type_1 []*resp
    var project_type_2 []*resp

    sql = fmt.sprintf(sql, where.string())
    _, err := d.ctx.db().selectbysql("select * from project where project_type=1 order by rand() limit 10").load(&project_type_1)

    _, err = d.ctx.db().selectbysql("select * from project where project_type=2 order by rand() limit 10").load(&project_type_2)
    return project_type_1, project_type_2, err
}

但是现在project_type的数据是的json[{"project_type":1,"name":"something else"},{"project_type":2,"name":"something else"},{ "project_type":3,"name":"something else"},{"project_type":4,"name":"something else"}],project_type大于2,我必须获取一个interface{}列表,我尝试重写如下代码,但我不知道下一步该怎么写,如何从go中的for循环返回接口列表?非常感谢您的建议。

func newprojectlist(d *db) ([]interface{}, error) {
    var s = make([]projecttype, 0)
    data, err := d.querystring("project_type")
    if err != nil {
        return nil, err
    }

    err = json.unmarshal([]byte(data), &s)
    if err != nil {
        return nil, err
    }

    for _, shorttype := range s {
        fmt.println("this is shorttype", shorttype)
    }
    return nil, err

}

解决方法

如果您希望每个project_type有10个结果(全部10*n个结果):

func (d *db) projectlist(type, uid string, size uint64) ([]interface{}, error) {
    type resp struct {
        name        string `json:"name"`
        id          string `json:"id"`
        projecttype string `json:"project_type"`
    }
    // get all types, you can get it from db
    // example: select distinct projecttype from project
    types := []string{"1", "2", "3", "4"}
    ans := []interface{}{}

    for _, stype := range types {
        var project_type []*resp
        sql = fmt.sprintf(sql, where.string())
        _, err := d.ctx.db().selectbysql("select * from project where project_type=" + stype + " order by rand() limit 10").load(&project_type)
        ans = append(ans, project_type)
    }
    return ans, nil
}

如果所有类型总共有 10 个结果:

i write it if you need it

以上就是如何从 Go 中的 for 循环返回接口列表?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何从 Go 中的 for 循环返回接口列表?

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

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

猜你喜欢
  • 如何从 Go 中的 for 循环返回接口列表?
    在Go语言中,我们可以通过for循环来遍历数组、切片、映射等数据结构。但是,有时候我们需要在循环中返回一个接口列表。这是一个常见的需求,因为接口是一种抽象类型,可以代表多种具体类型。本...
    99+
    2024-02-09
    go语言
  • Vue中的v-for列表循环示例详解
    目录前言1. v-for1.1 数组1.2 对象2. v-for的key补充:v-for中key属性的意义总结前言 在电商项目的开发中,会用到这样一个问题:商品的陈列我们如果使用原生...
    99+
    2022-11-13
    vue中的for循环 vue循环列表 vue使用for循环
  • 使用for循环从go函数接收两个返回值时如何有效利用局部变量和临时变量?
    来到编程网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《使用for循环从go函数接收两个返回值时如何有效利用局部变量和临时变量?》,介绍一下,希...
    99+
    2024-04-04
  • Go中如何使用for循环遍历切片
    在Go中,可以使用for range循环来遍历切片。下面是一个简单的示例: package main import "f...
    99+
    2024-04-02
  • SpringBoot接口中如何直接返回图片数据
    目录接口直接返回图片数据起因类似这种根据个人经验优雅的实现图片返回接口直接返回图片数据 起因 最近在做涉及到分享推广的业务,需要由业务员分享二维码进入推广页面,由于是新项目,前期预算...
    99+
    2024-04-02
  • 如何使用Python中的for循环
    如何使用Python中的for循环Python是一种简单易用的编程语言,其中的for循环是非常常用的工具之一。通过使用for循环,我们可以循环遍历一系列的数据,进行有效的处理和操作,提高代码的效率。下面,我将通过具体的代码示例,介绍如何使用...
    99+
    2023-10-25
    Python 使用 for循环
  • 如何将 MySQL 表中的列值作为一组值返回?
    借助MySQL的MAKE_SET()函数,我们可以将MySQL表中的列值作为一组值返回。为了理解它,我们以Student_Name表为例,其中包含以下数据−mysql> Select * from Student_N...
    99+
    2023-10-22
  • vue如何打开接口返回的HTML文件
    目录一、后端接口二、前端前言:接口测试平台,后端使用django,前端使用vue+element。项目接口平台测试完成,需要把后台产生的测试报告返回给前端展示。 一、后端接口 &nb...
    99+
    2024-04-02
  • 当 go 中计时器完成时如何从函数返回?
    问题内容 我是刚开始开发玩具测验 cli 程序。我正在尝试实现一个计时器,以便当计时器结束时,测验就结束了。 这是我的初步实现。 func StartTimer(quizFinishe...
    99+
    2024-02-06
  • 在golang中如何循环遍历字符串接口
    php小编柚子为您带来关于在golang中如何循环遍历字符串接口的简洁解答。在golang中,字符串是以字节的形式存储的,因此要遍历字符串,我们需要先将其转换为字节数组。通过使用ran...
    99+
    2024-02-09
  • 如何深入了解JavaScript中的for循环
    本篇文章给大家分享的是有关如何深入了解JavaScript中的for循环,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在ECMAScript5...
    99+
    2024-04-02
  • 如何在 VS Code for Go 中生成接口实现?
    在使用VS Code进行Go语言开发时,生成接口实现是一个常见的需求。接口实现可以帮助我们快速生成遵循接口定义的代码模板,提高开发效率。那么,如何在VS Code for Go中实现这...
    99+
    2024-02-11
    go语言
  • java如何动态的处理接口的返回数据
    目录0、需求说明1、 思路方案2 、 具体实施0、需求说明 业务场景:服务A对接了服务B,服务C等服务的一些接口,然后由服务A统一暴露接口给到外部用户使用。 需求是: 服务...
    99+
    2023-01-30
    java 动态接口的返回数据 java接口动态返回
  • 如何在Go语言中利用for循环实现翻转操作
    标题:Go语言中利用for循环实现翻转操作的方法 在Go语言中,通过使用for循环可以很方便地对数组、切片等数据结构进行翻转操作。在本文中,我们将介绍如何利用for循环来实现数组和切片...
    99+
    2024-04-02
  • python如何将循环得到的数据放入列表
    要将循环得到的数据放入列表,可以按照以下步骤进行:1. 创建一个空列表,用于存储数据。2. 在循环中,每次迭代时将数据添加到列表中。...
    99+
    2023-09-20
    python
  • 如何理解Python基础中的for循环语句
    如何理解Python基础中的for循环语句,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环的语...
    99+
    2023-06-02
  • Go 中如何返回带有参数的函数?
    从现在开始,努力学习吧!本文《Go 中如何返回带有参数的函数?》主要讲解了等等相关知识点,我会在编程网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能...
    99+
    2024-04-04
  • 如何处理PHP接口返回非JSON数据的情况
    如何处理PHP接口返回非JSON数据的情况 在Web开发中,我们经常会使用PHP编写接口来与前端进行数据交互。通常情况下,我们会将数据以JSON格式返回给前端,以便前端能够方便地解析和...
    99+
    2024-03-12
    数据 php接口 处理非json php解析 php编写
  • JavaScript如何禁用回调列表中的回调
    本篇内容介绍了“JavaScript如何禁用回调列表中的回调”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • PHP如何返回输入数组中单个列的值
    这篇文章将为大家详细讲解有关PHP如何返回输入数组中单个列的值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 中返回输入数组中单个列的值 在 PHP 中,可以通过多种方法从数组中提取特定列的值。以下...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作