我觉得有点傻,因为这应该很容易,但是我只是从go开始,无法弄清楚。
package main
import "fmt"
type Question struct {
q []string
a []string
}
func (item *Question) Add(q string, a string) {
n := len(item.q)
item.q[n] := q
item.a[n] := a
}
func main() {
var q Question
q.Add("A?", "B.")
}
编译时会出现错误:
q.go:11:12:错误:预期为';' 或'}'或换行符
q.go:12:12:错误:预期为';' 或'}'或换行符
指的是item.q [n]的开头大括号:= q和下一行。
我敢肯定我使用的分片不正确,因为它可以与一个简单的字符串一起正常工作,但是我不确定如何解决它。
编辑:我已经按照Pat Notz的建议使用StringVectors重新实现了它,并且效果很好。以下是工作代码:
package main
import (
fmt "fmt"
vector "container/vector"
)
type Question struct {
q vector.StringVector
a vector.StringVector
}
func (item *Question) Add(q string, a string) {
item.q.Push(q)
item.a.Push(a)
}
func (item *Question) Print(index int) {
if index >= item.q.Len() {
return
}
fmt.Printf("Question: %s\nAnswer: %s\n", item.q.At(index), item.a.At(index))
}
func main() {
var q Question
q.Add("A?", "B.")
q.Print(0)
}
饮歌长啸
守候你守候我
相关分类