skillup

技術ブログ

go言語

go言語について(言語仕様 型あり、未定義エラー、基本データ、構造体、スコープ)

投稿日:2018年4月18日 更新日:

go言語を1ヶ月ほど勉強したので基本的な特徴などを書いて起きます。完全自分用。

ちなみにソースはこちら

https://github.com/umanari145/golang_sample

  • コンパイラ型なので型の定義、初期化などにややうるさい。
  • 定義して使用しない、importして使用しないパッケージがあるとコンパイルエラー

やり始めでこけるのはまず上記のような特徴でしょう。

上記のような言語としてはやや厳しい特徴があるため正直、生のエディタで作業をするのは難しいでしょう。特に定義して値を代入しないと、落ちてしまうのに自分は最初びっくりました。作業効率アップのためには自分はatomにgo-plus,goto-definetion,go-lintというプラグインを使いました。

これらにより、コードを書いて保存をしただけで下記のことをやってくれます。

  • 適切なimportを自動で選んでくれる
  • オートフォーマット
  • エラーを検知
  • 入力補完

などの機能がついています。わかりやすくいうとJavaを描くときのEclipseやNetBeansみたいなものかと思います。逆にいうとプラグインなしでやるのはJavaを素のエディタを使って描くような荒行に近いです。

  • クラスはないが、「構造体」と言われるものが近い

自分もまだあんまりわかってませんが、大まかにPHPのクラスはgoでは構造体と理解しております。

  • intとfloat,stringなどの扱いが厳しい

Javaなどやっている方であれば当たり前でしょうが、数字と文字をしっかり意識しなくてはいけないこと、整数と少数が違うことなどわかっていないと最初は厳しいです。

  • 比較的簡単なデータはmapの配列で処理し、複雑な場合は構造体の配列で定義。

これまたJavaなどと近いですが、なんでもかんでも配列で処理はできないので単純なkey-value型はmapで処理し、ある程度複雑だったりイレギュラーなデータは構造体で扱います。

  • スコープはブロックスコープと関数のスコープとパッケージスコープがある。publicとprivateの違いは行頭が大文字か小文字か。

ブロックスコープがある以外のスコープの考え方はPHPなどと近いでしょう。ただし、publicとprivateを区別するのに先頭の文字が大文字か、小文字かになります

他にも色々ありますが、また今度。

-go言語
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

go言語について(言語仕様 ライブラリ、文字列、パッケージ、コンパイルに関して)

go言語について気をつけるべきなど。 ライブラリ関連 ライブラリを入れるときはgo getコマンド。作業ディレクトリ要注意。任意のところではライブラリが機能しないです。GO PATHの理解が必要。 文 …

no image

go言語について(基本的な特徴など)

実務でgo言語ってのをやってます。 私が当然やりたいといった訳ではないのですが、学ぶものが多く、大変やりがいがありますね。 特徴としては下記のような感じでしょうか。 マルチプラットホーム 今回選ばれた …