RubyエンジニアのGo言語入門①

目次

Goを学ぼうと思った背景

普段業務ではRubyを書いているのですが、製的型付け言語のGoに興味があったので、少しずつ学習してアウトプットできればと思います。
普段Rubyを書いているとあまり型を意識することは少ないのですが、もっとRubyで綺麗なコードを書けるようになりたいと思って、静的型付け言語は前々から学びたいと思っていました。
その中でもGoに興味を持った理由は、シンプルな言語ゆえに誰が書いても同じコードに近しくなり、保守性が良いという話を聞き、需要も高まっていることから学んでみようと思いました。

Goとは

Googleが開発した言語であり、正式名称はGoです。
Goで検索しても違う記事がヒットしたりするので、GolangやGo言語とも呼ばれます。
Goは静的型付け、C言語の伝統に則ったコンパイル言語、メモリ安全性、ガベージコレクション、並行処理に強いという特徴を持ちます。

この記事では

無料で学べるGo Tourと呼ばれる公式チュートリアルがあるので、知識の整理も兼ねて、文法をまとめていきます!

Packages

Goのプログラムはパッケージ(package)で構成されます。
インポート(import)することで必要なパッケージを読み込むことができます。

プログラムはmainパッケージから開始されます。この辺りはGoのお作法みたいです。
以下のGoファイルをコンパイルしてから実行するとmain関数の処理が走ります。

imports

括弧でパッケージのインポートをグループ化できます。
複数のインポートステートメントで1行ずつ書くよりは、グループ化の方がコードがすっきりします。

Expoted names

GOでは、最初の文字が大文字で始まる名前は、
外部のパッケージから参照できるエクスポート(公開)された名前です。
(パッケージの中に定義されている定数や関数のこと)

Functions

関数は0個以上の引数を取ることができます。
Goでは変数名の後ろに型名を書きます。

関数の引数でも型を宣言して、関数の戻り値にも型を宣言してあげます。

Functions continued

関数の2つ以上の引数が同じ型である場合は、最後の型を残して省略して記述できます。

Multiple results

関数は複数の戻り値を返すことができます。

Named return values

Goでの戻り値となる変数に名前をつけることができます。
名前をつけた戻り値の変数を使うと、returnステートメントには何も書かずに戻すことができます。これをnaked returnと呼びます。
naked returnは長い関数で使うと読みやすさ(readability)に悪影響を及ぼすので、短い関数でのみ使うようにしましょう。

Variables

varステートメントは変数(variables)を宣言します。
関数の引数リストと同じように、複数の変数の最後に型を書くことで、変数のリストを宣言できます。

varステートメントはパッケージ、または、関数で利用できます。

Variables with initializers

var宣言では、変数ごとに初期化子(initializer)を与えることができます。
初期化子が与えられている場合、型を省略できます。その変数は初期化子が持つ型になります。

最後に

型宣言するのが新鮮で楽しかったです。
引き続きGoを学んでみようと思いました。
また記事書きます!