结构数组怎样初始化和赋值?

xep007 · 2014-01-14 00:10:35 · 14614 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2014-01-14 00:10:35 的主题,其中的信息可能已经有所发展或是发生改变。

声明一个结构数组:

var s[2]struct{name string, age int}

然后要怎样初始化和赋值呢?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

14614 次点击  
加入收藏 微博
8 回复  |  直到 2015-11-26 05:41:13
631768417
631768417 · #1 · 11年之前

这不叫结构数组。 GO里只有 数组 多维数组 和 结构体

你这个声明是不对的

type s struct { name string age int }

这个才是正确的 在GO里叫结构体 在JAVA里叫Bean 或者叫类

你是想声明二维数组吧??

631768417
631768417 · #2 · 11年之前

你这种想法应该以二维数组的方式来实现。 详情参考 二维数组的初始化方法。

631768417
631768417 · #3 · 11年之前

不建议使用二维数组, 一个已经老掉牙的东西。。 抛弃二维吧。 在JAVA里使用二维数组被看做是愚蠢的选择。

在GO里有更好的方案替代二维数组。

polaris
polaris · #4 · 11年之前

比如:

var s = [2]struct {
    name string
    age  int
}{{"polaris", 25}, {"studygolang", 1}}
xep007
xep007 · #5 · 11年之前

谢谢楼上各位的解答。

xep007
xep007 · #6 · 11年之前

谢谢polaris大大。按您说的可以初始化,但是要怎样修改或增加数组的值呢。请不吝指教。

xep007
xep007 · #7 · 11年之前

可以了。

func main() {
    s := [2]struct {
        name string
        age  int
    }{{"abc", 23}, {"def", 25}}

    fmt.Println(s[0])
    s[1].name, s[1].age = "mike", 45
    fmt.Println(s[1])

}
nivance
nivance · #8 · 9年之前

也可以这样: ```type s struct { name string age int }

ss := []s{} s1 := s{"tom", 18} ss = append(ss, s1)```

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传