LoginSignup
1
0

More than 1 year has passed since last update.

はじめてのGO のメモ

Last updated at Posted at 2022-03-26

はじめに

何となくGOを使ってみたいなと思い、linux に環境をインストールしてtutorial を行ったので、メモしておきます。
インストールについては、GOのページに書いてある情報で全く困らなかったので、tutorial のところだけメモしておきます。

全くGOについて知識がないので、間違えがあるかもしれませんがご容赦ください。

メモ

Module file

以下のファイルがあり go run . とするとHello world ができるか、と思いきや、できませんでした。

hello.go
package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}
$ go run .
go: go.mod file not found in current directory or any parent directory; see 'go help modules'

ソースコードで使用するモジュールの依存関係を調べて解決する必要がります。その情報は go.mod というファイルに書かれるようです。
That go.mod file stays with your code, including in your source code repository. とチュートリアルに書かれています。

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

とすると、go.mod というファイルが作られます。これで実行できるようになります。

$ go run .
Hello, World!

モジュールを追加して使用する

今度は、モジュールを追加して使用します。ここでは、grc.io/quote というものを使います。
先程のhello.go に

import "grc.io/quote"

を追加してgo run . を実行すると、エラーが出ます。

$ go run .
hello.go:4:8: no required module provides package rsc.io/quote; to add it:
	go get rsc.io/quote

Tutorialに書かれている通り、以下を実行すると、自動的に追加されます。tidy は「几帳面」の意味らしい。

$ 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 .
# example/hello
./hello.go:4:8: imported and not used: "rsc.io/quote"

実行すると、なんとimport したのに使っていない、と言われてしまします。

hello.go
package main

import "fmt"
import "rsc.io/quote"

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

これで実行できました。

$ go run .
Hello, World!
Don't communicate by sharing memory, share memory by communicating.

まとめ

とりあえずtutorialを終えた。go.modが大切そう、という感じだけわかりました。何か作ってみたいが、いい題材はないかな。クラウド関係で。

良さげなページがあったのでメモ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0