フリーランス チャレンジ!!

フリーランス チャレンジ!!

現役フリーランスエンジニアが書く雑記ブログ

【Go言語 】基本文法サンプル(if、switch、for、ポインタ、レシーバー、構造体、関数)

スポンサーリンク

スポンサーリンク

Go言語 基本 文法 サンプル

※1 

来月から始まるリモート案件がGo言語で機能追加なんですが、一度も書いた事ないんですね。

ヽ(´Д`;)ノアゥア...

 

勉強しながらでもOKとの事で、案件始まる前に時間があり早速勉強しました。

 

参考にしたのは下記サイト。

はじめてのGo言語 - はじめてのGo言語

※すごくわかりやすくて良いサイトです!!

 

※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

f:id:ksakae1216:20180626074609p:plain

 

※ここ以降に関しては、main.goの12~18行目をそれぞれコメントアウトして実行して下さい。

 

if文

次はif文です。

gist8214b2b3bcb0d5ba74eb7cc00cd5ff3a

 

ifの後のかっこ"()"は不要。

6行目ですが他のファイルから呼ぶ場合は、先頭を大文字にします。(ifFuncはダメ)

 

【IfFunc実行結果】 

f:id:ksakae1216:20180626074902p:plain

 

switch文

gistd362df23d9f3cb44fe0138e4fa18a170

 

break不要です。
17行目のようにfallthrough書くと次の処理も実行。

(引数が"Ruby"の場合、"Rails"も処理します)

 

【SwitchFunc実行結果】

f:id:ksakae1216:20180626075027p:plain

 

for文

gist448ff228cfb40752a985d8aeea0623b8

 

Go言語にwhile文は無いのでwhileループもforで対応します。

普通のfor文は11行目から13行目。

while文は17行目から24行目。

foreach文は29行目から31行目。(ループ内でindex値を使わないので"_"にしてる)

 

【ForFunc実行結果】

f:id:ksakae1216:20180626075200p:plain

 

ポインタ

gist048e8f8b404408fcde32fe22334f7248

 

ここで大事な事が2つあります。

値渡しポインタ(参照渡し)です。

 

値渡しは関数内で更新しても変わらない。
ポインタ(参照渡し)は値が更新される。

 

【PointerFunc実行結果】

f:id:ksakae1216:20180626075355p:plain

 

レシーバー

gistd5ffdae2b8ec956c5ee91bc2146d0e5c

 

型宣言に関数を関連付けることができる。

Javaのメソッドのようなイメージで型宣言はクラスイメージです。

 

【ReceiverFunc実行結果】

f:id:ksakae1216:20180626075447p:plain

 

構造体

gist1d480beb7606b532ae2bf470012f074f

 

構造体名、メンバ変数ともに先頭が大文字だと他ファイルから呼べる、小文字だと呼べない

 

【StructFunc実行結果】

f:id:ksakae1216:20180627223318p:plain

 

関数いろいろ

gista6691a711435ba9e8d0f9abe6915a16a

 

可変長の引数、戻り値を返す、複数の戻り値を返すの3パターンのソースコードです。

 

【AboutFunc実行結果】

f:id:ksakae1216:20180626075605p:plain

 

最後に

ソースをGitに登録しました。

github.com

 

【次の記事】

www.ksakae1216.com

 

【関連記事】

このソースを試して見たい方は下記記事で簡単に開発環境を作成できますよ!

www.ksakae1216.com