2024/11/29(金)おじさんがgolangを学ぶ
プログラムはなんとなくできるけど、ちゃんとやったのは C, Perl, shell というおじさん。
オブジェクト指向だったりパラダイム的なもの
- 複数の返り値を返せる
- エラーの補足がCほど原始的ではないが例外を強制する言語とも違う
- クラスではなくレシーバ
- 可変長引数の書き方 ("..." っていうやつ)
- go routine と context
文化的なもの
- 変数はキャメルケース、関数はスネークケースを使うようだ
- 戻り値や引数の型とインターフェースと構造体
実装は全然違うと思うけど、X11 くらいのオブジェクト指向を言語仕様にまとめた感じ。C#のガチガチに縛ってくる感じではない気配。(個人の印象です)
返り値や仮引数の宣言が今まで見たことがない順番になってる。それが根本的に良いということなのかレシーバの宣言のために組み替えたのか。そういうものだと受け入れられて、混乱するわけではない。
Rust をちょっとかじったらメモリ管理を自分でやらされたけど、go はそこを意識しなくていいので書いていて安心。
未知の構文や考え方はあるけど、今のところクセはない印象。