Goって何?

Googleが開発したオープンソースのプログラミング言語で、Pythonと並んで人気です。
これからプログラムを学ぶ場合は、最適と呼べる1つだと思われます。

私がホームページの作成に利用しているHugoも、Goで作られたものです。

サイト紹介

公式 → The Go Programming Language
Wikipedia → Go (プログラミング言語) - Wikipedia

準備

インストール

  1. 公式のダウンロードページから、利用したいOSのインストーラーをゲットしてインストールします。
  2. ターミナルでgo versionを実行し、バージョンが返ってきたらオッケーです。

VS Codeで使えるようにする(任意)

  1. 拡張機能で、Goを入れる
  2. コマンドパレットで、Go関連のツールを入れる
    • インストール中にエラーが出たりするけど、放っておけば終わる

詳しくは、Microsoftのサイトで説明されているので、下記参照。
Go 開発用に Visual Studio Code を構成する | Microsoft Learn

VS Codeでデバッグするとエラーが出る

デバッグ機能を使うと noDebug mode: unable to process ’evaluate’ request と怒られました。
設定ファイルのlaunch.jsonに追記することで直りました。

参考にしたサイト

【Go】VS Codeの実行で標準入力を行うと「noDebug mode: unable to process ’evaluate’ request」が発生 - Qiita

GitHubと繋げる

GitHubにリポジトリを用意したので、そこと繋げました。

いまいち分かっていない

各サイトを参考に設定しただけなので、Goを理解しているかというと、まだ全然分かっていないです。
とりあえず動くようになりましたよというレベル。

しばらくお勉強だな。

go.mod ってなんだ?

最初、hello.goという空ファイルを作って、中にBardに作ってもらったプログラムを入れました。
go run hello.goで実行できるんですが、go.modが無いぜと怒られました。

go mod initで作れるのは分かりましたが、指示の仕方がよく分からず。
作成したプログラムと同じところに置くと見かけたのでそうしたのですが、後から消しても大丈夫だったり。

どうやらgo mod init github.com/(GitHubユーザー名)/(GitHubリポジトリ名)っぽかったので、ソースフォルダの手前で作ってみました。合っているのかどうなのか・・・。

Hello, World!

プログラムの勉強で最初にするのは、 Hello, World! の出力と決まっています。

鉄の掟です。

ChatGPTの出番

でも、どうやって書くのか全然分かっていません。
Goのサイトにチュートリアルとして書いてありますが、気付かなかったことにして、 ChatGPTを使います。 やりたかっただけだろ。

k-kaz 「Hello, World!を出力するGoのプログラムを書いて」

package main
import "fmt"
func main() {
 fmt.Println("Hello, World!")
}

すぐ出てきた。

解説もしてくれています。

このプログラムでは、fmtパッケージをインポートして、main関数内でfmt.Println()関数を使用して、テキスト “Hello, World!” を出力しています。fmt.Println()関数は、引数に与えられた文字列を改行付きで標準出力に出力する関数です。
上記のコードをコンパイルし、実行すると、次のように “Hello, World!” が表示されます。

$ go run main.go
Hello, World!

VS Codeで試す

ChatGPTに教えてもらったコードをコピペして、デバックモードで実行。
きちんとHello, World!が表示されました。

実行可能なexeに変換

コマンドラインで下記のように入力します。
go build hoge.go

簡単ですね。

Goは自分の中で流行るのか

まだGoで何をするとか考えていないので、 これっきりになる 可能性も若干あります。
元々、ChatGPTでプログラムを組んで動かすのに、Goが手っ取り早い感じだったのでやってみたというのが正直なところ。
あくまでChatGPTのお遊びの一環みたいな・・・ね。

とはいえ、それだけだと勿体ないので、時間のあるときに考えてみようかな。