【Go言語入門①】macOSに環境構築して、Hello Worldを表示する

Go言語

Go言語の環境構築方法をお伝えしていきます

目次

パッケージをダウンロード

まずはGo言語の公式ドキュメントに移行し、パッケージをダウンロードします

(Go言語のバージョンは最新版の1.19.1をダウンロードしています)

パッケージをダウンロードしたら、インストーラーが開かれます

順に進めていきましょう

これでインストールが完了しました。

それでは実際にインストールが完了したのか確認します

$go version
go version go1.19.1 darwin/amd64 // これが表示されたら成功

無事にダウンロードしたバージョンが表示されました

Go言語でHello Worldをしてみよう

続いて、Go言語でHello Worldを表示させていきたいと思います

公式ドキュメントのチュートリアルを参考に進めていきます

ディレクトリの作成

そのためにまずはディレクトリを作成します

$ mkdir HelloWorld
$ cd HelloWorld

modファイルの作成

つづいてmodを作成します

modはコードの依存関係の追跡をするために利用します。

ぎゅう

package.jsonのようなものだと認識しています。

実際にコマンドを実行して作成してみましょう

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

そうするとgo.modファイルが生成されます。

モジュール名とGo言語のバージョンが記載されていますね。

hello.goを作成しよう

テキスト エディターで、コードを記述するファイル hello.go を作成します。

続いて、hello.goに書きを記述します

package main // パッケージを宣言

import "fmt" // コンソールへの出力など、テキストをフォーマットするための関数が含まれているパッケージをインストール

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

下記のように表示されます

実行してみる

作成したhello.goを実行してみます。go runで実行しましょう

$go run .
Hello, World! //出力される

Hello worldが表示されたら、無事に実行された証拠になります。

コマンドの一覧を確認したい場合は、下記のコマンドでコマンド一覧を確認できます

$go help

実行すると下記が表示されます。

Go is a tool for managing Go source code.

Usage:

        go <command> [arguments]

The commands are:

        bug         start a bug report
        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         add dependencies to current module and install them
        install     compile and install packages and dependencies
        list        list packages or modules
        mod         module maintenance
        work        workspace maintenance
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

Use "go help <command>" for more information about a command.

Additional help topics:

        buildconstraint build constraints
        buildmode       build modes
        c               calling between Go and C
        cache           build and test caching
        environment     environment variables
        filetype        file types
        go.mod          the go.mod file
        gopath          GOPATH environment variable
        gopath-get      legacy GOPATH go get
        goproxy         module proxy protocol
        importpath      import path syntax
        modules         modules, module versions, and more
        module-get      module-aware go get
        module-auth     module authentication using go.sum
        packages        package lists and patterns
        private         configuration for downloading non-public code
        testflag        testing flags
        testfunc        testing functions
        vcs             controlling version control with GOVCS

Use "go help <topic>" for more information about that topic.

外部パッケージのコードを呼び出す

他の人が実装しているようなことを自分のコードで行う必要がある場合、自分のコードで使える関数があるパッケージを探せばよいのです。

今回はquoteを利用して、文字出力をしたいと思います

パッケージの検索

そのために下記のページでパッケージを検索しましょう

import例の確認

import方法の例を確認しましょう

importsを押します。

すると、インポートのパスが表示されます

rsc.io/sampler

インポートの方法がわかったところで、具体的なバージョンなどをみていきます。

すると、バージョンを指定したimport方法が出てきます。

これを実際に読み込んでみましょう

実際にパッケージを取り込む

それでは実際にimportしていきましょう。

複数のパッケージをimportする場合、下記のようにimport()でまとめて取り込みます

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

実際に取り込んでみます

package main

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

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

しかし、いざimportするとエラーが表示されます。

エラー内容を翻訳すると下記になります

could not import rsc.io/quote (no required module provides package "rsc.io/quote")
// rsc.io/quote をインポートできませんでした (パッケージ "rsc.io/quote" を提供する必要なモジュールがありません)

quoteが使えないように思えるかもしれないですが、シンプルにgo.modに依存関係を記述して取り込んでいないだけです。

そこでimportしたい外部パッケージを入れるために、go mod tidyを実行します。

$go mod tidy
go: finding module for package rsc.io/quote // モジュールの検索
go: found rsc.io/quote in rsc.io/quote v1.5.2 // 検索した結果見つかったパッケージを取り込む

するとimportされて、エラーの表示がなくなりました。

go.modを確認すると、下記が記述されたことがわかります。さらにgo.sumも生成されています。

module example/hello

go 1.19

require rsc.io/quote v1.5.2

require (
	golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
	rsc.io/sampler v1.3.0 // indirect
)

実行してHello Worldを表示する

それでは改めて実行してみます。

$go run .         
こんにちは世界。

無事に出力されましたね

GoをHello Worldする内容は以上となります

次の記事

ここまでお疲れ様でした
それでは次の記事に進めて、さらに理解を深めていきましょう!

ぎゅう
WEBエンジニア
渋谷でWEBエンジニアとして働く。
LaravelとVue.jsをよく取り扱い、誰でも仕様が伝わるコードを書くことを得意とする。
先輩だろうがプルリクにコメントをして、リファクタしまくる仕様伝わるコード書くマン
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる