インストール Go

Download and installのページに行き、環境に適したものをインストールする。

インストールするとシステムが立ち上げるので、手順に沿って進めていく。

Finish後、Goがインストールされていることを確認する。

コマンドを開き、go versionを叩くとgo version go1.21.1 windows/amd64と表示された。

これでインストールされていることを確認できた。

Hello World

次にHelloWordを表示させる。

まずは任意の場所に適当なフォルダを作成する。

 mkdir HelloWorldGo
 cd  HelloWorldGo

モジュールを作成する

次に、

go mod init example/hello

上記コマンドでモジュールの作成を行うのだが、

'go' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

というエラーが出た。

Pathを調べてみるとしっかりと通っている。 ということで再起動をする。

再起動で、

go mod init example/hello
go: creating new go.mod: module example/hello

無事に叩けるようになった。

上記コマンドで作成されたのは、go.modというファイルで、

module example/hello

go 1.21.1

という記載がある。

調べてみるとこれは、依存関係のバージョン管理をするものらしい。 つまり、スクリプトを記述しないJavaScriptpackage.jsonみたいなものらしい。

疑問点が解消されたので、次に行く。

Mainパッケージの作成

hello.goファイルを作成し、

package main

import "fmt"

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

をと記述する。

 go run .

上記コマンドを叩けば、

Hello, World!

Goエンジニアのスタートラインに立てた。

外部パッケージの呼び出し

外部パッケージのコードを呼び出してみる。

まずはhttps://pkg.go.dev/でパッケージを検索する。 今回はチュートリアルに沿って、https://pkg.go.dev/rsc.io/quote/v4というパッケージを使用することにする。

次にhello.goの内容を変更する。

package main

import "fmt"

import "rsc.io/quote"

func main() {
    fmt.Println(quote.Go())
}

"rsc.io/quote"importして"rsc.io/quote"のパッケージを使用するできるようにした。

次にルートにgo.sumファイルを作成する。

このファイルではgo.modで定義したプロジェクトのモジュール構成と依存関係のバージョン管理に使用するらしい。

次にgo mod tidyコマンドを実行する。

このコマンドは

  • 実際に使われていない依存関係を削除
  • importした依存関係をインストール
  • つまり、プロジェクトの依存関係を最新化できる

上記の通りの動きをする。

>go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2

実行すると上記のように依存関係がインストールされた。

最後に実行してみる。

 go run .
Don't communicate by sharing memory, share memory by communicating.

という風によくわからない文章が出力された。

Githubを見ると、そういう風に返すようにできているので、正しく動いている。