我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Golang:创建一个 strutcs 切片

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Golang:创建一个 strutcs 切片

从现在开始,我们要努力学习啦!今天我给大家带来《Golang:创建一个 strutcs 切片》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我想创建一个结构列表,这些结构可以由函数以 go-github 包中的方式返回。

但是创建和填充此类列表的正确方法是什么?

我找到了两种方法,例如使用 append()

...
    allowedrepos := strings.fields("repo1, repo2")

    actualrepos := []repos{}
    actualrepos = append(actualrepos, repos{name: "repo1", url: "gth.com/repo1"})
    actualrepos = append(actualrepos, repos{name: "repo2", url: "gth.com/repo2"})
...

并通过“直接初始化:

...
    actualRepos := []Repos{
        Repos{Name: "repo1", URL: "gth.com/repo1"},
        Repos{Name: "repo2", URL: "gth.com/repo2"},
    }

它们确实有效,但看起来都有点尴尬和错误。

那么 - 最好的方法是什么?

看起来需要使用指针创建它,但无法使其工作。


解决方案


其实并没有什么错,两种做法都是正确有效的。
唯一的区别是切片填充时间。
在第二种方法中,您在开发期间填充切片,这意味着以下代码:

actualrepos := []repos{
    repos{name: "repo1", url: "gth.com/repo1"},
    repos{name: "repo2", url: "gth.com/repo2"},
}

始终会创建其中包含 2 个元素的切片。

但是使用第一种方法,您可以使用 append() 在运行时填充切片,例如:

actualrepos := []repos{}
for _, repo := range allrepos {
  actualrepos = append(actualrepos, repo)
}

所以现在一切都取决于 allrepos 并且现在此代码具有在运行时确定的动态行为。

请注意切片本身是通过引用传递的,例如:

s := [...]string{"r", "o", "a", "d"}
s2 := s[:]
s[3] = "x"

结果将是:

// s = [r o a x], s2 = [r o a x]

今天关于《Golang:创建一个 strutcs 切片》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Golang:创建一个 strutcs 切片

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Golang:创建一个 strutcs 切片

从现在开始,我们要努力学习啦!今天我给大家带来《Golang:创建一个 strutcs 切片》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!
Golang:创建一个 strutcs 切片
2024-04-05

从另一个切片创建切片但类型不同

问题内容是否有一种简单易读的方法来创建切片的副本但使用另一种类型?例如,我收到了 int32 的切片 (mySlice []int32),但我需要它的副本,并且该副本应为 int64: copyOfMySlice []int64。我需
从另一个切片创建切片但类型不同
2024-02-02

在 Golang 中将一个字节切片压缩到另一个切片中

问题内容我想实现与此处给出的解决方案完全相反的效果,将一个字节片段压缩到另一个字节片段中 -将压缩的 []byte 转换为解压的 []byte golang 代码类似 -func ZipBytes(unippedBytes []by
在 Golang 中将一个字节切片压缩到另一个切片中
2024-02-12

从切片创建类型

问题内容我想创建一个像堆栈一样的数据类型。我想在“顶部”添加和删除条目,并能够将其打印出来。在此示例中,xpath 类型用于遍历 xml 文档并跟踪当前路径。所以我创建了一个xpath[]string类型,并编写了相应的函数,即:pus
从切片创建类型
2024-02-06

如何将元素从一个切片移动到另一个切片

php小编苹果将为大家介绍如何将元素从一个切片移动到另一个切片的方法。在编程中,切片是一种常用的数据结构,它可以存储多个元素。有时候,我们需要将某个元素从一个切片中取出,并将其移动到另一个切片中。这个过程可能涉及到元素的删除、插入、索引操作
如何将元素从一个切片移动到另一个切片
2024-02-10

数组切片创建数组副本

数组切片可创建数组副本,语法为:array[start:end],其中 start 是起始索引,end 是结束索引(不包括)。它不会修改原始数组,但会创建一个引用指向原始元素。对切片数组或原始数组的任何修改都会反映在另一方。数组切片创建数组
数组切片创建数组副本
2024-04-27

如何利用HLS创建一个Golang视频流服务器

这篇文章给大家介绍如何利用HLS创建一个Golang视频流服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。HLS 是 HTTP Live Streaming 的缩写,是苹果开发的一种基于 HTTP 的自适应比特率流
2023-06-20

创建一个数字单位转换器,使用Golang开发

数字单位转换器是一种常见的工具,可以帮助我们在不同单位之间进行转换,比如长度单位之间的转换,重量单位之间的转换等。今天,我们将使用Golang来开发一个数字单位转换器,让我们来看看具体的代码示例吧。首先,我们需要创建一个新的Golang文
创建一个数字单位转换器,使用Golang开发
2024-02-25

如何使用 Go 从切片中随机选择一个偏向切片一端的项目?

问题内容我了解从 go 中的 slice 中选择随机值的一种方法:rand.Seed(time.Now().UTC().UnixNano()) var db [500]string
如何使用 Go 从切片中随机选择一个偏向切片一端的项目?
2024-02-06

在 PHP 中创建一个 Webhook

Webhook 使用 JSON 和 XML 文件格式处理,通常包含文本数据。用户可以使用 PHP 函数来处理这些文件。在 PHP 中创建一个 WebhookWebhook 通常采用 JSON/TEXT/XML 文件格式。你可能希望这些文件使
在 PHP 中创建一个 Webhook
2024-02-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录