Golang入門
Golang is 何?
- 2009年にGoogleが発表したプログラミング言語
- シンプルな言語使用
- コンパイル・実行が高速
- 平行プログラミングに強い
- C言語を基にしたところがある
- 拡張子は「.go」が推奨
公式サイト
出力
// パッケージ定義
package main
// 関数定義
func main() {
println("hello, golang")
println(1 + 3)
}
/*
* 「.go」ファイルはパッケージの定義と関数の定義などで構成される
*/
- 改行込みの出力の命令は「println()」
- 文字列を出力する際は「""」で囲う必要がある
- 数値は「""」で囲う必要はない
コメント
- 行コメントを書くときは「//」以降がコメントとなる
- ブロックコメントを書く時には「/* */」で囲われた行全てがコメントとなる
四則演算 +@
- 加法
println(5 + 2) // 7
- 減法
println(5 - 2) // 3
- 乗法
println(5 * 2) // 10
- 除法
println(4 / 2) // 2
- 剰余
println(5 % 2) // 1
- 文字列連結
println("Hi,"+ "Gophers") // Hi, Gophers
変数
変数とはデータを入れておく箱のようなものであり、取り出したり入れ替えたりすることができる。
変数は「var 変数名 データ型」の形で定義する。
var name string = "oz"
var num int = 98
定義と同時に値を代入する場合にはデータ型の指定を省略することができる。
var name = "oz"
さらに省略した書き方もある「変数名 := 値」とすることで変数の定義と値の代入までを行うことができる。
定義済みの変数に代入する際に「:=」と書いた場合にはエラーになる。
name := "oz"
name := "wizard" // nameは定義済みのためエラー
変数に代入された値は計算したり連結したりすることもできる
num := 5
println(num + 5) // 10
自己代入をすることもできる
また、省略することも可能である
// どちらも同じ意味
num = num + 5
num += 5
// 他の四則演算その他でも使える
num -= 5
num *= 5
num /= 5
num %= 5
インクリメント、デクリメントの場合にはさらに省略することが可能である。
num++
num--
変数を含む文字列を出力する場合には「%s(文字列)」や「%d(数値)」を含む必要がある。
func main() {
name := "oz"
fmt.Printf("こんにちは、%sさん", name)
}
変数はメモリに記憶されており、その場所を「アドレス」という。
アドレスを取得するためには「&変数名」で取得できる。
アドレスは値であり、整数や文字列のように操作したり変数に代入することができる。
Golangにおいてこのアドレスは「ポインタ」と呼ばれ、ポインタが代入された変数を「ポインタ方変数」と呼ぶ。
ポインタ型変数を定義するには、変数のデータ型に「*」をつけて宣言する。
var namePtr *string = &name
ポインタ方変数に対して「*変数名」とすることでポインタが示す値を取り出すことができる。
fmt.Println(*namePtr)
ポインタ型変数を使用して値を更新する場合には以下のように記述をする。
// *変数名 = 更新する値
*namePtr = "update"
※注意点
num := 4
num = “4” // これはエラーになる
条件分岐
if文
- 条件を満たすかどうかで処理を分ける方法として条件分岐がある
- 条件式は真偽値trueもしくはfalseのどちらかになる
- 条件式がtrueの時に処理が実行される
- 最初に合致した条件の処理だけが実行される
- どの条件にも合致しない場合には「else」の処理が実行される
- 複数の条件を設定したい場合には「&&」または「||」を使う
if 条件式1 {
// 実行文1
} else if 条件式2 || 条件式3 {
// 実行文2
} else {
// 実行文3
}
比較演算子
x > y // より大きい
x >= y // 以上
x < y // より小さい
x <= y // 以下
x == y // 等しい
x != y // 等しくない
switch文
条件の値がcaseで設定した値と一致する時に処理が実行される。
x := 8
switch x % 2 {
case 0, 2:
println("偶数")
case 1:
println("奇数")
default:
println("例外")
}
標準パッケージ
Golangには「標準パッケージ」と呼ばれるものがあり、全ての処理を自分で書く必要がない。
標準パッケージは100種類以上用意されている。
- fmt コンソールに出力
- math/rand ランダムな数値を生成
- time 時間に関する処理
標準パッケージを使うためには、対象のパッケージを読み込む必要がある。
import "fmt"
読み込んだ標準パッケージは「パッケージ名.機能名」で呼び出すことができる。
fmt.Println("Hello, Golang")
Discussion