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言語について(GOPATH、テスト、go.sum、go.mod、ライブラリ)

goを再び触ることになりそうで以前やったものを再履修しております。 https://skill-up-engineering.com/category/go言語/ まとまってないですが、色々とメモを。 …

no image

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

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

no image

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

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

アーカイブ