Golang 学習記録 - その1 -

最近Golangで出来た製品に触れる機会が多くなりました。

それらの製品の挙動が不思議な時や仕様が英語の理解力の問題でピンとこないとき、githubへ飛んで行くとその実装を見ることが出来ます。
内部を追っている内に文法や意味をちょっとずつ理解出来てきたんですが、書いたことも無いのに不思議と身近に感じるっていう変な間隔に陥っていました。
そんな時、作りたいツールがあってそこで要件的にちょうどよかったのでGoを使うことにしました。
なので最近は仕事とは全然違う空いた時間ではGoばっかり書いています。
その中でのぼんやりしたところからはっきりしていく過程を少しずつ記録していこうと思いました。

今日はその1回目。

新しい言語に向かうときに今まで使った言語との差異を把握していく意味合いで、超基本的なことを少しずつ。

Classは無い

Class構文は無い

=> 構造体(type struct)でClass的なことを実現する

変数にはコンパイル時に型が必要

変数には型が必要

=> 型名を書かない場合も初期値で型が決まる

配列とは別の、スライスがある

配列の記憶領域への参照

doやwhileは無い

for文が柔軟で、whileのように書ける

変数には初期値(ゼロ値)がある

初期値を明示しなかった場合、型によって決まるゼロ値で初期化される。

=> 例えばnilという概念はint型では存在しない(0が入る)

文字列の囲み文字はダブルクォーテーション

シングルクォーテーションはルーンリテラル

=> Unicodeコードポイントの整数値 (uint)

バッククォーテーションは未加工文字列

=> 正規表現のパターンを書く時やヒアドキュメントを書くときに使える

定数の書き方

const example = 1

protectedは無い

継承の概念が無いからprotectedなアクセスレベルは無い。

先頭が小文字の関数、変数、メンバは同一パッケージ内で参照可能

一般的なprivateよりはやや広い範囲。

先頭が大文字の関数、変数、メンバはpublic

都度publicと書かなくて良い。

次回に続く。

Recent Posts

Archive