#author("2020-04-29T02:10:08+00:00","default:haikikyou","haikikyou")
#contents
* Goの特徴 [#i5aac11b]
- Googleによって開発され2009年に発表されたプログラミング言語
- ネイティブコードにコンパイルされる
- マルチプラットフォームで動作する
- OSに依存しない、各OSの標準ライブラリに依存しない実行ファイルを生成する
- ガベージコレクションあり
- goroutineという並行処理の仕組みがあり、シンプルかつ効率的な処理が可能
- ''オブジェクト指向言語ではない''
* Go言語の基本 [#ef7e2238]
mainパッケージのmain関数がエントリーポイント
#geshi(go){{{
package main
import "fmt"
func main() {
fmt.Printf("Hello, World\n")
}
}}}
** iota [#z6b7b9fc]
- ConstSpecのインデックス。~
- const宣言ごとに0の値から始まる。
- constのブロック指定でない場合は、0になる。
#geshi(go){{{
package main
import "fmt"
const Out_block1 = iota // 0 (ConstSpec)
const Out_block2 = iota // 0 (ConstSpec)
const (
Blk1_a = iota // 0 (iota=0) (ConstSpec)
Blk1_b = 0 // (iota=1) (ConstSpec)
Blk1_c = iota // 2 (iota=2) (ConstSpec)
)
const (
Blk2_a = iota // 0
Blk2_b = 0 // 0
Blk2_c = iota // 2
)
const (
Blk3_a1, Blk3_a2 = iota, iota // 0, 0 (ConstSpec)
Blk3_b1, Blk3_b2 = iota, iota // 1, 1 (ConstSpec)
)
func main() {
fmt.Printf("Out_block1 = %d\n", Out_block1)
fmt.Printf("Out_block2 = %d\n", Out_block2)
fmt.Printf("Blk1_a = %d, Blk1_b = %d, Blk1_c = %d\n", Blk1_a, Blk1_b, Blk1_c)
fmt.Printf("Blk2_a = %d, Blk2_b = %d, Blk2_c = %d\n", Blk2_a, Blk2_b, Blk2_c)
fmt.Printf("Blk3_a1 = %d, Blk_a2 = %d\n", Blk3_a1, Blk3_a2)
}
}}}
&label(warn){参考}; https://golang.org/ref/spec#ConstSpec
* 参考リンク [#d0f91440]
- https://golang.org
- https://github.com/golang/go
- https://golang.org/doc/articles/wiki/
- [[https://go言語.com/doc/>https://xn--go-hh0g6u.com/]]- &size(11){&color(gray){on https://go言語.com/doc/};};
** 実装例など [#k76a1a60]
goroutineのパターンが分かりやすくまとめられている。
- http://jxck.hatenablog.com/entry/20130414/1365960707
数多くの実装例が掲載されている。
- [[Go by Example>https://gobyexample.com]] - &size(11){&color(gray){on https://gobyexample.com};};
** 初学者に分かりやすく役立つ情報 [#x5950fd2]
- [[A Tour of Go>https://go-tour-jp.appspot.com/list]] - &size(11){&color(gray){on https://go-tour-jp.appspot.com/list};};
- [[Welcome to a tour of Go>https://go-tour-jp.appspot.com/list]] -&size(11){&color(gray){on https://go-tour-jp.appspot.com/list};};
- [[Goならわかるシステムプログラミング>http://ascii.jp/elem/000/001/235/1235262/]] - &size(11){&color(gray){on http://ascii.jp/elem/000/001/235/1235262/};};
- [[Go入門>https://www.slideshare.net/takuyaueda967/2016-go]] - &size(11){&color(gray){on https://www.slideshare.net/takuyaueda967/2016-go};};
- [[Go言語の初心者が見ると幸せになれる場所 #golang>https://qiita.com/tenntenn/items/0e33a4959250d1a55045]] - &size(11){&color(gray){on https://qiita.com/tenntenn/items/0e33a4959250d1a55045};};