2024/11/29(金)おじさんがgolangを学ぶ

プログラムはなんとなくできるけど、ちゃんとやったのは C, Perl, shell というおじさん。

オブジェクト指向だったりパラダイム的なもの

  • 複数の返り値を返せる
  • エラーの補足がCほど原始的ではないが例外を強制する言語とも違う
  • クラスではなくレシーバ
  • 可変長引数の書き方 ("..." っていうやつ)
  • go routine と context

文化的なもの

  • 変数はキャメルケース、関数はスネークケースを使うようだ
  • 戻り値や引数の型とインターフェースと構造体

実装は全然違うと思うけど、X11 くらいのオブジェクト指向を言語仕様にまとめた感じ。C#のガチガチに縛ってくる感じではない気配。(個人の印象です)

返り値や仮引数の宣言が今まで見たことがない順番になってる。それが根本的に良いということなのかレシーバの宣言のために組み替えたのか。そういうものだと受け入れられて、混乱するわけではない。

Rust をちょっとかじったらメモリ管理を自分でやらされたけど、go はそこを意識しなくていいので書いていて安心。

未知の構文や考え方はあるけど、今のところクセはない印象。