Visual Studio Code(Windows)でGo言語環境を作ったときの記録
なぜ、突然「Go言語」について書き始めたかというと、ChatGPTにコードを変換させる実験を以前にしたときに、「もっとほかの言語ではどうなのかな?」と思ったのがきっかけです。で、「じゃあGoもやってみよう」となったわけです。
ここからの話は、Windows 10にVisual Studio Codeがすでに入っているところから始めます。
前回、Visual Studio Community を私のPCに入れたから。共存できるかを試しました。なので、そこから。
ただ、思った以上にてこずったんですね。私の知識不足が原因。
以下の手順はMicrosoftの次のページの手順を参考にしています。
- 次のURLからインストーラーを入手します。
- 「Download (1.21.4)」(バージョンはその時による)をクリックするとインストーラーの選択画面になるので、今回は「Microsoft Windows」を選びます。インストーラーのファイル(.msi)がダウンロードされます。
- 普通にインストーラーのアイコンをダブルクリックします。
- 他のソフトウェアと同じように「Next」をクリックしていって、最後に「Install」ボタンを押すとインストールが始まります。
- マイクロソフトのWebにあるように、コマンドプロンプトで「go version」と入力してバージョンが返ってくるかどうかを確認します。
-
Visual Studio Codeに、日本語拡張をあてたときと同様に、左のメニューの「拡張機能」で「Go」を検索します。たいてい一番最初にGo言語の拡張が出てきます。
「インストール」をクリックして、作業を開始します。一瞬で終わった。 - 今回は、Cドライブの直下に「Go_Sample」というフォルダーを作成して、そこにプログラムを格納することにしました。
- ファイル名を「Go_Sample.go」として、先ほど作成したフォルダーを指定して保存します。
- 最初は次のような「Go for VS Code」も表示されます。「X」をクリックして閉じ、「Go_Sample.go」の編集画面にします。
-
Go言語の公式ページのサンプルを見てみたのですが。。。URLは次の通り。
※インポートしている「fmt」というパッケージは、テキストのフォーマットやコンソールへの表示処理をするためのもの。 - 保存をしようとすると、右下に次のような警告が出ます。「goimport」コマンドがありませんよ、と言ってます。
-
まあ、これがないを動かなさそうわけなので「Install All」をクリックしてインストールします。
「Install」のほうをクリックすると、まだ不足しているものがあるようで、動きません。 - 「Install All」をクリックすると次のような出力が返ってきます。今後は、「go.modが現在のディレクトリか親ディレクトリにない」と言ってます。
-
「go.mod」を探してみると、「Program Files\Go\misc」の下にありました。
ダメもとで、これを「C:\Go_Sample」フォルダーの下にコピーしました。
で、Visual Studio Codeで「Go_Sample.go」を保存したら、エラーや警告らしきものが消えました。
(※実はこのやり方はだめ。「go.mod」については次回に捕捉します) -
さて、では実行してみますか。
左のメニューから「実行とデバッグ」を選択します。左のペインの一番上にまた「実行とデバッグ」があるのでそれをクリックします。 - 今度は、右下に次が表示された。まだ、足りないのね。「Install All」をします。
-
で、もう一回「実行とデバッグ」をしても動かず。
仕方がないので画面にあるようにコマンドプロンプトで「go install –v github.com/go-delve/delve/cmd/dlv@latest」を実行しました。結構な数がダウンロードされました。 - んで、VS Code側でやっていると、動きました。一見、動いていなさそうですが、デバッグになっているので「デバッグコンソール」に他の情報とともに結果(Println)が出力されてます。「出力」には表示されないんだ。。。
- 多くのWebサイトのサンプル実行では、作成したGoプログラムをコマンドプロンプトで実行しているので、やってみます。
間違いなく動いてますね。
なんか、MicrosoftのWebに書いてあるみたいに簡単にいかないのはなぜ???
今回については、初めてやろうとして、いろいろうまくいかなかったことなどを書きました。
スムーズにいく前提の情報は多いのですが、格闘した結果を書いているサイトが少ない気がしたので。