0
0

More than 3 years have passed since last update.

【自己学習用】はじめてのGo1

Posted at

参考元

Markdown記法 チートシート
Markdown記法 サンプル集
Qiita Markdown 書き方 まとめ
qiitaに書くのは初めてなのでMarkdown記法もついでに学習。
はじめてのGo

Go言語の特徴

  • 2009年にGoogleにより発表されたオープンソースのプログラミング言語
  • シンプルな言語仕様であるため学習が比較的容易
  • 豊富な標準パッケージが同梱されている
  • 巨大なコードでも高速にコンパイルできる
  • Windows,OS X,Linuxなどの環境に合わせた実行ファイルを生成するクロスコンパイルのしくみがある
  • 並行処理のサポートも充実しており,ミドルウェアの開発などにも適している

言語仕様について

  • 他の言語が持つような機能の多くを削り、言語をシンプルに保っている
  • 繰り返し構文はfor文しかなく,while文やdo/while文などはサポートされていない
  • ifの波括弧は省略できず,三項演算子もない:thumbsup:
  • ポインタなし
  • 暗黙の型変換なし
  • 宣言されたものの使われていない変数があるとコンパイルが通らない
  • 例外(try/catch構文)がない。発生した異常を戻り値として呼び出し側に返す方針

インストール

はじめてのGoに従って進めていきます。
インストーラ
1.png
msiファイルをダウンロード→実行。
全部デフォルトでOK。
WS000010.JPG

コマンドでver確認。

$ go version
go version go1.15.6 windows/amd64

hello world

hello.goを作成。
環境はとりあえずVSCODE。

package main

import (
    "fmt"
)

func main() {
    fmt.Println("hello world")
}

作成したフォルダにcdして実行。

$ go run hello.go
hello world

helloされた。

コンパイル

go buildでコンパイル。
exeファイルができる。

$ go build hello.go

フォーマット

go fmtでフォーマット。
Goでは,標準のコーディング規約があるのでそれに従ってフォーマットされる。
半角スペース派とタブ派の永遠の争いはgoでは起きない。

$ go fnt hello.go

Goのプロジェクト構成とパッケージ

共通のファイルを使用するためにはGOPATH以下にファイルがないと認識されない。

まず,myprojectディレクトリを起点に,次のようにbin,pkg,srcという3つのディレクトリを作成します。
次に,myprojectディレクトリのパスをGOPATHという環境変数に指定します。

とあるがインストール時に環境変数がユーザ\go以下に設定されているので
それをそのまま使うことにする。環境変数変更するのはなんかやだし。

gosampleパッケージ

ユーザ\go\src\gosample\gosample.goを作成する。

package gosample

var Message string = "hello world"

mainパッケージ

任意の場所(自分はgithub管理フォルダ)/myproject\src\main/main.goを作成する。

package main

import (
    "fmt"
    "gosample"
)

func main() {
    fmt.Println(gosample.Message) // hello world
}

ビルドと実行

$ cd myproject\src\main
$ go run main.go

go installコマンドを用いると,生成されたファイルが$GOPATH/binに自動的に格納される。

$ cd ユーザ\go\src\main
$ go install

ここまでの成果物は以下にUP。
https://github.com/yusuke-nomura-cosmoroot/GoStudy

0
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
0
0