我正在尝试迭代切片值并通过索引访问它们以更新一个或多个值,或者通过迭代访问它们。然后我遇到了以下问题。
package main
import "fmt"
type Member struct {
Name, Surname string
Age int
}
type Members []Member
func main() {
members1 := Members{
{"Bob", "Doe", 30},
{"Jack", "Doe", 30},
{"John", "Doe", 30},
}
members1.ModifyName()
members1.ModifyAllNames1()
members1.ModifyAllNames2()
fmt.Println(members1)
}
func (members *Members) ModifyName() {
*members[0].Name = "-"
}
func (members *Members) ModifyAllNames1() {
for i := 0; i < len(*members); i++ {
*members[i].Name = "-"
}
}
func (members *Members) ModifyAllNames2() {
for _, m := range *members {
m.Name = "-"
}
}
然后我得到以下错误:
invalid operation: members[0] (type *Members does not support indexing)
invalid operation: members[i] (type *Members does not support indexing)
func (members Members) ModifyName() { members[0].Name = "-" }
- Stephen Weinberg