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

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

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

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

Q&A

2回答

1631閲覧

go言語でのエラーの解決策が分かりません。

sdfgdfgh

総合スコア2

Go

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

0グッド

0クリップ

投稿2020/06/30 02:36

go言語でのエラーの解決策が分かりません。
vscodeを用いて実行しています。

go

1package main 2 3import( 4 "fmt" 5) 6 7type Post struct{ 8 Id int 9 Content string 10 Author string 11} 12 13var PostById map[int]*Post 14var PostsByAuthor map[string][]*Post 15 16func store(post Post){ 17 PostById[post.Id] =&post 18 PostsByAuthor[post.Author]=append(PostsByAuthor[post.Author],&post) 19} 20 21func main(){ 22 PostById = make(map[int]*Post) 23 PostsByAuthor=make(map[string][]*Post) 24 25 post1:=Post{Id:1,Content:"Hello World!",Author: "Sau Sheong" } 26 post2:=Post{Id:2,Content:"Bonjour Monde!",Author: "Pierre" } 27 post3:=Post{Id:3,Content:"Hola Mundo!",Author: "Pedro" } 28 post4:=Post{Id:4,Content:"Greetings Earthlings!",Author: "Sheog" } 29 30 store(post1) 31 store(post2) 32 store(post3) 33 store(post4) 34 35 fmt.Println(PostById[1]) 36 fmt.Println(PostById[2]) 37 38 for _, post:=range PostsByAuthor["Sau Sheong"]{ 39 fmt.Println(post) 40 } 41 42 for _,post:=range PostsByAuthor["Pedro"]{ 43 fmt.Println(post) 44 } 45 46}

expected ';', found 'package'

exported type Post should have comment or be unexported
struct field Id should be ID
exported var PostById should have comment or be unexported
var PostById should be PostByID
exported var PostsByAuthor should have comment or be unexported

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

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

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

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

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

guest

回答2

0

Go には golint という linter があり、golint による結果だと思います。(普段VSCodeを使っていないため手もとで再現できず、間違っていたらすみません)

expected ';', found 'package'

上記の結果は go-vscode のバグによるものと思われます。Issue によると再起動すると解消するようです。

https://github.com/microsoft/vscode-go/issues/3082

exported type Post should have comment or be unexported
struct field Id should be ID
exported var PostById should have comment or be unexported
var PostById should be PostByID
exported var PostsByAuthor should have comment or be unexported

上記の golint の結果は出力されている通りに修正すれば解決されるかと思います。例えば以下のようにです。

go

1package main 2 3import ( 4 "fmt" 5) 6 7// Post is something struct... 8type Post struct { 9 ID int 10 Content string 11 Author string 12} 13 14// PostByID is xxx... 15var PostByID map[int]*Post 16 17// PostsByAuthor is xxx... 18var PostsByAuthor map[string][]*Post 19 20func store(post Post) { 21 PostByID[post.ID] = &post 22 PostsByAuthor[post.Author] = append(PostsByAuthor[post.Author], &post) 23} 24 25func main() { 26 PostByID = make(map[int]*Post) 27 PostsByAuthor = make(map[string][]*Post) 28 29 post1 := Post{ID: 1, Content: "Hello World!", Author: "Sau Sheong"} 30 post2 := Post{ID: 2, Content: "Bonjour Monde!", Author: "Pierre"} 31 post3 := Post{ID: 3, Content: "Hola Mundo!", Author: "Pedro"} 32 post4 := Post{ID: 4, Content: "Greetings Earthlings!", Author: "Sheog"} 33 34 store(post1) 35 store(post2) 36 store(post3) 37 store(post4) 38 39 fmt.Println(PostByID[1]) 40 fmt.Println(PostByID[2]) 41 42 for _, post := range PostsByAuthor["Sau Sheong"] { 43 fmt.Println(post) 44 } 45 46 for _, post := range PostsByAuthor["Pedro"] { 47 fmt.Println(post) 48 } 49 50}

投稿2020/06/30 03:09

d_tutuz

総合スコア730

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

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

0

go言語(go lintでのチェック)では exportされた(先頭が大文字)の関数・変数・構造体はコメントをつける必要があります。

そのため Post,PostById,PostsByAuthorにコメントをつける必要があります。

例)

//Post has id , content and author info type Post struct{ Id int Content string Author string }

Idに関しては詳しいところはわからないのですがIDと修正する様にgo lintは求める様です。

expected ';', found 'package' については https://qiita.com/ryysud/items/1cf66ee4363aec22394a を参考にgoplsをupdateすると治る可能性があるそうです

投稿2020/06/30 02:57

masibw

総合スコア38

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問