web-dev-qa-db-ja.com

GoLand(JetBrains)にエラーメッセージ「未解決の参照」が表示されます。しかし、コードはコンパイルして実行されます

私はGoLanguageでプロジェクトをやっていて、JetbrainsによるGoLandをIDEとして使用しています。 GoLandは、IDEエラーメッセージ(「未解決の参照」))を表示しますが、コンパイルと実行は正しく行われます。

これは、stackoverflow( Go-structのスライスに追加 )で私が見つけたいくつかのコードの類似した(しかしより単純な)例です。同じエラーメッセージが表示されます。しかし、明らかに私は上記の数行だけでメソッドを実装しました。

_package main

import (
"fmt"
)

 type MyBoxItem struct {
Name string
 }

 type MyBox struct {
Items []MyBoxItem
 }

func (box *MyBox) AddItem(item MyBoxItem) {
box.Items = append(box.Items, item)
}


 func main() {

item1 := MyBoxItem{Name: "Test Item 1"}
item2 := MyBoxItem{Name: "Test Item 2"}

box := MyBox{}

box.AddItem(item1)
box.AddItem(item2)

// checking the output
fmt.Println(len(box.Items))
fmt.Println(box.Items)
}
_

box.AddItem(item1)およびbox.AddItem(item2)は、エラーとして赤でマークされます。カーソルをその上に移動すると、(_unresolved reference "AddItem"_)と表示されます。しかし、コードはコンパイルされて実行されます。これが他のスタックオーバーフローの問題に対する解決策だったので、コードが間違っているとは思いません。さらに、私はそれに間違いを見つけることができません。

enter image description here

誰かがお手伝いできますか?どうもありがとう

[編集:私はリモートサーバーからコードを読み込み、プライベートPCでローカルに編集します。変更が完了したら、それをリモートサーバーにアップロードし(「Browse Remote Host」などのGoLandsツールを使用)、そこでビルドしてコンパイルします。同じコードを使用してローカルで試した後、エラーメッセージが表示される場合と表示されない場合があります。私は完全に混乱しています]

9
David

同じ問題が発生し、奇妙に修正されました。コーディングを続行するために、プロジェクトをvscodeにインストールして開きました。goplsという拡張機能のインストールを開始しました。インストールが完了したら、GoLandに戻ってプロジェクトを閉じましたが、インデックス作成が完了するのを待ちました。突然、参照が緑色になりました。

GoLand 2019.3.1で問題を再現できません。それにアップグレードすることをお勧めします。

それでも問題が解決しない場合は、問題が発生した場所を説明してください。スクリーンショットで確認できるように、通常のプロジェクトファイルではなく、Scratchファイルがあるように見えます。

0
dlsniper