※1
来月から始まるリモート案件がGo言語で機能追加なんですが、一度も書いた事ないんですね。
ヽ(´Д`;)ノアゥア…
勉強しながらでもOKとの事で、案件始まる前に時間があり早速勉強しました。
参考にしたのは下記サイト。
※すごくわかりやすくて良いサイトです!!
※1The gopher images are Creative Commons Attributions 3.0 licensed. That means you can play with the images but you must give credit to their creator (Renée French) wherever they are used.
基本文法をサンプルとしてまとめました
実際に手を動かして、基本的なとこのソースを公開します。
Go言語やり始めで「あれ?どう書くんだっけ」とか、興味あるけど書いた事ない人にはおススメです。
最初の基本(main.go)
まずはコレが無くては始まりません。main.goです。
gist7327f62eae08417e95fd60e5a7a36f1f
変数の宣言がちょっと特殊ですね。
型を最後に持ってきてます。
【nyuumonFunc実行結果】
コマンド:go run main.go
※ここ以降に関しては、main.goの12~18行目をそれぞれコメントアウトして実行して下さい。
if文
次はif文です。
gist8214b2b3bcb0d5ba74eb7cc00cd5ff3a
ifの後のかっこ”()”は不要。
6行目ですが他のファイルから呼ぶ場合は、先頭を大文字にします。(ifFuncはダメ)
【IfFunc実行結果】
switch文
gistd362df23d9f3cb44fe0138e4fa18a170
break不要です。
17行目のようにfallthrough書くと次の処理も実行。
(引数が”Ruby”の場合、”Rails”も処理します)
【SwitchFunc実行結果】
for文
gist448ff228cfb40752a985d8aeea0623b8
Go言語にwhile文は無いのでwhileループもforで対応します。
普通のfor文は11行目から13行目。
while文は17行目から24行目。
foreach文は29行目から31行目。(ループ内でindex値を使わないので”_”にしてる)
【ForFunc実行結果】
ポインタ
gist048e8f8b404408fcde32fe22334f7248
ここで大事な事が2つあります。
値渡しとポインタ(参照渡し)です。
値渡しは関数内で更新しても変わらない。
ポインタ(参照渡し)は値が更新される。
【PointerFunc実行結果】
レシーバー
gistd5ffdae2b8ec956c5ee91bc2146d0e5c
型宣言に関数を関連付けることができる。
Javaのメソッドのようなイメージで型宣言はクラスイメージです。
【ReceiverFunc実行結果】
構造体
gist1d480beb7606b532ae2bf470012f074f
構造体名、メンバ変数ともに先頭が大文字だと他ファイルから呼べる、小文字だと呼べない
【StructFunc実行結果】
関数いろいろ
gista6691a711435ba9e8d0f9abe6915a16a
可変長の引数、戻り値を返す、複数の戻り値を返すの3パターンのソースコードです。
【AboutFunc実行結果】
最後に
ソースをGitに登録しました。
【次の記事】
【関連記事】
このソースを試して見たい方は下記記事で簡単に開発環境を作成できますよ!
コメント