質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

0回答

671閲覧

Go スライス Index error

tetra_

総合スコア2

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2020/06/30 10:15

前提・実現したいこと

Goぼスライスに値を代入していくのですが、エラーになります

発生している問題・エラーメッセージ

[PANIC RECOVER] runtime error: index out of range [5] with length 5 goroutine 8 [running]

該当のソースコード

//cursor.Cursor.Limit+1 は5が入っている todoModel := make([]*model.ToDo, 0, cursor.Cursor.Limit+1) var model *model.ToDo for i := 0; i < cursor.Cursor.Limit; i++ { doc, err := iter.Next() if err == iterator.Done { break } if err != nil { fmt.Printf("%v", err) return nil, err } if err := doc.DataTo(&model); err != nil { return nil, err } todoModel = append(todoModel[:i], model) }

試したこと

for i := 1 i <= cursor.Cursor.Limit; i++ にすると先頭がnilになりますが、エラーは回避できます

[ null, { "taskid": "90827fa9-2b53-4cd0-a7f4-f04f5cea2c43", "userid": "cabfba4f-7a97-4783-9c69-f82c06198cab", "name": "旅行", "createtime": "2020-06-26T07:16:53.700295Z", "content": "インド", "term": "2020-01-01T10:10:10Z", "status": "Incomplete", "cursor": { "continued": false, "limit": 0 } }, { "taskid": "90827fa9-2b53-4cd0-a7f4-f04f5cea2c43", "userid": "cabfba4f-7a97-4783-9c69-f82c06198cab", "name": "旅行", "createtime": "2020-06-26T07:16:53.700295Z", "content": "インド", "term": "2020-01-01T10:10:10Z", "status": "Incomplete", "cursor": { "continued": false, "limit": 0 } }, { "taskid": "90827fa9-2b53-4cd0-a7f4-f04f5cea2c43", "userid": "cabfba4f-7a97-4783-9c69-f82c06198cab", "name": "旅行", "createtime": "2020-06-26T07:16:53.700295Z", "content": "インド", "term": "2020-01-01T10:10:10Z", "status": "Incomplete", "cursor": { "continued": false, "limit": 0 } }, { "taskid": "90827fa9-2b53-4cd0-a7f4-f04f5cea2c43", "userid": "cabfba4f-7a97-4783-9c69-f82c06198cab", "name": "旅行", "createtime": "2020-06-26T07:16:53.700295Z", "content": "インド", "term": "2020-01-01T10:10:10Z", "status": "Incomplete", "cursor": { "continued": false, "limit": 0 } }, { "taskid": "90827fa9-2b53-4cd0-a7f4-f04f5cea2c43", "userid": "cabfba4f-7a97-4783-9c69-f82c06198cab", "name": "旅行", "createtime": "2020-06-26T07:16:53.700295Z", "content": "インド", "term": "2020-01-01T10:10:10Z", "status": "Incomplete", "cursor": { "continued": false, "limit": 0 } } ]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobonobo

2020/07/01 01:21

回答を得るためにはかなり情報が不足しています。 情報不足の場合は第三者が再現可能なコードにしてください。 cursor.Cursor.Limitが4であるというならスライスから5を参照しようということはあり得ないはずです。 cursor.Cursor.Limitが途中で変化?各部でログをもっと出してみましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問