有没有更简单的方法来附加结构体切片?
短信预约 -IT技能 免费直播动态提醒
怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面编程网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《有没有更简单的方法来附加结构体切片?》,涉及到,有需要的可以收藏一下
问题内容以下代码有效,但我想找到一种更简单的方法来实现它
package main
import "fmt"
type steps []struct {
i int
j int
}
func main() {
steps := steps{}
type step struct{ i, j int }
steps = append(steps, step{1, 1}, step{1, 2})
fmt.println(steps)
}
具体来说,我不想定义一个新类型只是为了将其附加到切片中。例如,我想这样做:
package main
import "fmt"
type steps []struct {
i int
j int
}
func main() {
steps := steps{}
steps = append(steps, {1, 1}, {1, 2}) // syntax error
fmt.Println(steps)
}
但是我会收到“语法错误:意外的 {,期望表达式”
我不明白为什么我不能这样做,数据结构是正确的。
解决方案
您在切片中创建了一个匿名结构,因此在添加元素时需要重复该架构:
// works - but a bit tedious...
steps = append(steps,
struct {
i int
j int
}{1, 1},
struct {
i int
j int
}{1, 2},
)
或定义子类型:
type step struct {
i int
j int
}
type steps []step
steps = append(steps, step{3, 4}, step{5, 6})
playground example
今天关于《有没有更简单的方法来附加结构体切片?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341