問(wèn)題:append下面的內(nèi)部Users()for 循環(huán)將users3x 中的最后一項(xiàng)添加到userRxs []*UserResolver期待:append應(yīng)該將里面的每個(gè)項(xiàng)目添加users到userRxs []*UserResolver// Users return all users from Dbfunc (r *RootResolver) Users() ([]*UserResolver, error) { var userRxs []*UserResolver users := r.Db.Users() for _, u := range users { log.Printf("userID: %s, username: %s, email: %s, password: %s", u.UserID, u.Username, u.Email, u.Password) userRxs = append(userRxs, &UserResolver{&u}) } log.Printf("%v", userRxs) return userRxs, nil}在 for 循環(huán)內(nèi),log.Printf打印這個(gè)userID: 0374402a-3dc4-48da-86c4-949905ccc26c, username: sunnysan, email: sunnysan@gmail.com, password: 12345678userID: 53f21c4f-2cd8-4e67-b3e9-5ef344806230, username: sunnysan2, email: sunnysan2@gmail.com, password: 12345678userID: 0a47d3af-03dc-4050-a028-7a41599af497, username: sunnysan3, email: sunnysan3@gmail.com, password: 12345678 在 for 循環(huán)之后,log.Printf("%v", userRxs)打印這個(gè)[ User { userID: 0a47d3af-03dc-4050-a028-7a41599af497, username: sunnysan3, email: sunnysan3@gmail.com, password: 12345678 } User { userID: 0a47d3af-03dc-4050-a028-7a41599af497, username: sunnysan3, email: sunnysan3@gmail.com, password: 12345678 } User { userID: 0a47d3af-03dc-4050-a028-7a41599af497, username: sunnysan3, email: sunnysan3@gmail.com, password: 12345678 }]這是整個(gè)文件以獲取更多上下文package mainimport ( "fmt" "log" graphql "github.com/graph-gophers/graphql-go")/* * User GQL type type User { userID: ID! username: String! email: String! password: String! }*/// User type should match the exact shape of the schema commented abovetype User struct { UserID graphql.ID Username string Email string Password string}// RootResolver ingests Db to run queries (getters) against ittype RootResolver struct { *Db}
1 回答

汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
范圍變量在每次迭代時(shí)都會(huì)被覆蓋,并且&u是相同的。所以你最終UserResolver會(huì)多次附加一個(gè)包含相同地址的地址。您需要使用該變量的本地副本。嘗試這個(gè):
for _, u := range users {
u:=u // Make a copy of the variable and redeclare it
userRxs = append(userRxs, &UserResolver{&u})
}
- 1 回答
- 0 關(guān)注
- 101 瀏覽
添加回答
舉報(bào)
0/150
提交
取消