Go 如何访问向量中的结构字段。向量?
我正在寻找帮助,了解如何访问container.vector.vector中的结构字段 以下代码:Go 如何访问向量中的结构字段。向量?,go,Go,我正在寻找帮助,了解如何访问container.vector.vector中的结构字段 以下代码: package main import "fmt" import "container/vector" func main() { type Hdr struct { H string } type Blk struct { B string } a := new(vector.Vector) a.Push(H
package main
import "fmt"
import "container/vector"
func main() {
type Hdr struct {
H string
}
type Blk struct {
B string
}
a := new(vector.Vector)
a.Push(Hdr{"Header_1"})
a.Push(Blk{"Block_1"})
for i := 0; i < a.Len(); i++ {
fmt.Printf("a.At(%d) == %+v\n", i, a.At(i))
x := a.At(i)
fmt.Printf("%+v\n", x.H)
}
}
那么,一个人究竟如何访问“H”或“B”?似乎我需要将这些接口转换为结构,但是。。。我不知道。我不知所措
感谢您的帮助。使用Go或区分Hdr
和Blk
类型。比如说,
package main
import (
"fmt"
"container/vector"
)
func main() {
type Hdr struct {
H string
}
type Blk struct {
B string
}
a := new(vector.Vector)
a.Push(Hdr{"Header_1"})
a.Push(Blk{"Block_1"})
for i := 0; i < a.Len(); i++ {
fmt.Printf("a.At(%d) == %+v\n", i, a.At(i))
x := a.At(i)
switch x := x.(type) {
case Hdr:
fmt.Printf("%+v\n", x.H)
case Blk:
fmt.Printf("%+v\n", x.B)
}
}
}
主程序包
进口(
“fmt”
“容器/向量”
)
func main(){
类型Hdr结构{
H字符串
}
类型Blk结构{
B弦
}
a:=新的(vector.vector)
a、 推送(Hdr{“Header_1”})
a、 推送(Blk{“Block_1”})
对于i:=0;i
但是,从发布之日起:
容器/向量包已被删除。切片比较好:
因此,对于最新版本
package main
import "fmt"
func main() {
type Hdr struct {
H string
}
type Blk struct {
B string
}
var a []interface{}
a = append(a, Hdr{"Header_1"})
a = append(a, Blk{"Block_1"})
for i := 0; i < len(a); i++ {
fmt.Printf("a[%d]) == %+v\n", i, a[i])
x := a[i]
switch x := x.(type) {
case Hdr:
fmt.Printf("%+v\n", x.H)
case Blk:
fmt.Printf("%+v\n", x.B)
}
}
}
主程序包
输入“fmt”
func main(){
类型Hdr结构{
H字符串
}
类型Blk结构{
B弦
}
var a[]接口{}
a=追加(a,Hdr{“Header_1”})
a=追加(a,Blk{“Block_1”})
对于i:=0;i
使用Go或来区分Hdr
和Blk
类型。比如说,
package main
import (
"fmt"
"container/vector"
)
func main() {
type Hdr struct {
H string
}
type Blk struct {
B string
}
a := new(vector.Vector)
a.Push(Hdr{"Header_1"})
a.Push(Blk{"Block_1"})
for i := 0; i < a.Len(); i++ {
fmt.Printf("a.At(%d) == %+v\n", i, a.At(i))
x := a.At(i)
switch x := x.(type) {
case Hdr:
fmt.Printf("%+v\n", x.H)
case Blk:
fmt.Printf("%+v\n", x.B)
}
}
}
主程序包
进口(
“fmt”
“容器/向量”
)
func main(){
类型Hdr结构{
H字符串
}
类型Blk结构{
B弦
}
a:=新的(vector.vector)
a、 推送(Hdr{“Header_1”})
a、 推送(Blk{“Block_1”})
对于i:=0;i
但是,从发布之日起:
容器/向量包已被删除。切片比较好:
因此,对于最新版本
package main
import "fmt"
func main() {
type Hdr struct {
H string
}
type Blk struct {
B string
}
var a []interface{}
a = append(a, Hdr{"Header_1"})
a = append(a, Blk{"Block_1"})
for i := 0; i < len(a); i++ {
fmt.Printf("a[%d]) == %+v\n", i, a[i])
x := a[i]
switch x := x.(type) {
case Hdr:
fmt.Printf("%+v\n", x.H)
case Blk:
fmt.Printf("%+v\n", x.B)
}
}
}
主程序包
输入“fmt”
func main(){
类型Hdr结构{
H字符串
}
类型Blk结构{
B弦
}
var a[]接口{}
a=追加(a,Hdr{“Header_1”})
a=追加(a,Blk{“Block_1”})
对于i:=0;i
container/vector软件包自2011-09-01年以来已被弃用,不再是标准库的一部分。使用切片和。自2011-09-01以来,container/vector
包已被弃用,不再是标准库的一部分。用切片代替。确认!我仍然习惯于评论系统。@mtw:如果这是你问题的答案,请点击答案上投票号码下的复选标记=)@Tom:done!由于某些原因,由于声誉不好,我无法将答案标记为已接受。不得不等了几个小时。再次感谢,peterSO。@mtw:请编辑您的问题,从标题中删除“[已解决]”并删除解决方案代码。我会自己编辑,但编辑到问题中的代码与公认答案中的代码并不完全相同,我不知道如何解决这个问题。@KeithThompson。好的没问题。在这篇文章中包含“解决方案”的公认方式是什么?我是否应该将其添加为问题的注释?确认!我仍然习惯于评论系统。@mtw:如果这是你问题的答案,请点击答案上投票号码下的复选标记=)@Tom:done!由于某些原因,由于声誉不好,我无法将答案标记为已接受。不得不等了几个小时。再次感谢,peterSO。@mtw:请编辑您的问题,从标题中删除“[已解决]”并删除解决方案代码。我会自己编辑,但编辑到问题中的代码与公认答案中的代码并不完全相同,我不知道如何解决这个问题。@KeithThompson。好的没问题。在这篇文章中包含“解决方案”的公认方式是什么?我应该把它作为对问题的评论吗?