CATEGORY

Go

  • 2024年7月13日
  • 2024年9月9日

【Go】スタックとヒープについて簡単なサンプルで確認する

はじめに メモリ領域にはスタックとヒープがあります。 スタックは関数呼び出しやその中で使われるローカル変数などが格納されるメモリ領域。 ヒープは動的にメモリが割り当てられる領域で、サイズの決まっていないデータや関数外で参照されたりする場合に使用するメモリ領域。 ヒープが大量に使用されてしまうと処理動 […]

  • 2024年7月13日
  • 2024年7月13日

【Go】ファイルに追記したいときは、os.OpenFileメソッドでos.O_APPENDフラグを使おう

はじめに ファイルに追記するプログラムを書いているときに、追記ではなく上書きされてしまうことがあり、勉強になったので書いておきます。 上書きされてしまうコード os.WriteFileメソッドを使うと、ファイルの中身が上書きされてしまう。 追記できるコード os.OpenFileメソッドで、os.O […]

  • 2024年7月13日

【Go】依存性の注入をやってみる

はじめに PHPやLaravelで依存性の注入は書いたことがあるのでイメージできますが、Goでは書いたことがないので、書いてみました。 コード Loggerインターフェイスで持たせたいメソッドを定義しています。 そして、そのインターフェイスを満たす実装をしているのが、ConsoleLoggerとFi […]

  • 2024年7月11日

【Go】delveでデバッグしてみる

はじめに Goでデバッグってどうやってやるんだろうと思ったので、調べてやってみました。 delve インストール VSCode拡張機能 インストール https://marketplace.visualstudio.com/items?itemName=golang.Go 動かしてみる ブレークポイ […]

  • 2024年7月7日
  • 2024年7月7日

GoのCobraを使ってCLIを作ってみた

コード ルートのコマンドとして、toolkitという名前のコマンドを作成しています。 そのサブコマンドとして、countとlinesを作りました。 Useフィールドにコマンド名、Runフィールドに実行する関数を登録します。 そして、それぞれFlags().StringP()で引数を定義します。 定義 […]

  • 2024年7月7日

Goでコマンドラインツールを作ってみた

コマンドラインツールを作るのは難しそうなイメージがありましたが、案外簡単に作れてしまいました。 コード main.go サンプルファイル test.txtとして保存します。 動かしてみる 引数が正しくない場合 コマンドラインの使用方法やオプションの説明が表示されます。

  • 2024年7月7日
  • 2024年7月7日

Goのジェネリクスを試してみた

Goのジェネリクスがよく理解できていなかったので、調べてみました。 ジェネリクス導入前 int型、float64型のそれぞれで同じ処理をする関数を定義しています。 型が異なるので、両者を一緒に計算したり、戻り値で返したりすることができません。 ジェネリクス導入後 Addable型を定義して、それをs […]