- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
** Go言語とはなにか? [#z670fa75]
- 概要
-- Google
-- シンプルな言語仕様
-- 高速
-- 並行プログラミング
- 公式サイト
-- https://golang.org/
- 知識
-- Unixコマンド
-- C言語
- 環境
-- CentOS7 (Vagrant)
-- sudo yum install golang
- Goインストール
$ pwd
/home/vagrant/golang_lessons
$ sudo yum -y install golang
$ go version
go version go1.6.3 linux/amd64
** はじめてのGoプログラム [#nf2aaa6a]
- hello.go
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
- コンパイル
$ go build hello.go
$ ls
hello hello.go
- 実行
$ ./hello
hello world
- コンパイル&実行
$ go run hello.go
hello world
- 言語の特徴
-- 1行コメントは「//」複数行コメントは「/* */」
-- 文末に「;」は不要
-- インデントはスペースではなくタブ推奨
** 変数を使ってみよう [#e456795e]
- 基本形
func main() {
var msg string
msg = "hello world"
fmt.Println(msg)
}
- 変数宣言と同時に値代入 &color(red){※}; 型 (string) は省略可能
func main() {
var msg = "hello world"
fmt.Println(msg)
}
- 変数宣言と同時に値代入 &color(red){※}; := を利用した記法
func main() {
msg := "hello world"
fmt.Println(msg)
}
- 実行結果
$ go run hello.go
hello world
- 複数変数を同時に宣言
func main() {
// var a, b int
// a, b = 10, 15
a, b := 10, 15
}
- 型が異なる変数を同時に宣言
func main() {
var (
c int
d string
)
c = 20
d = "hoge"
}
- 変数名の規則
-- 1文字目が小文字: そのパッケージ内からのみアクセス可
-- 1文字目が大文字: 他のパッケージからもアクセス可
-- 変数、定数、関数についても同じルール
** 基本データ型を使ってみよう [#mc17811c]
- 文字列: string
-- "hello"
-- 初期値: 空文字 "" &color(red){※}; nil では無い
- 整数: int
-- 53
-- 初期値: 0
- 浮動小数: float64
-- 10.2
- 真偽値: bool
-- false / true
-- 初期値: false
- nil
- printf の使い方
package main
import "fmt"
func main() {
a := 10
b := 12.3
c := "hoge"
var d bool
fmt.Printf("a:%d, b:%f, c:%s, d:%t\n", a, b, c, d)
}
- 実行結果
$ go run hello.go
a:10, b:12.300000, c:hoge, d:false
** 定数を使ってみよう [#y563475c]
- 定数
-- const で宣言
-- 値の変更不可
- hello.go
package main
import "fmt"
func main() {
const name = "taguchi"
name = "fkoji"
fmt.Println(name)
}
- 実行結果
$ go run hello.go
# command-line-arguments
./hello.go:7: cannot assign to name
- iota を使った定数宣言 &color(red){※}; 自動で連番の値を付与
package main
import "fmt"
func main() {
const (
sun = iota // 0
mon // 1
tue // 2
)
fmt.Println(sun, mon, tue)
}
- 実行結果
$ go run hello.go
0 1 2