- 2024年7月13日
- 2024年9月9日
【Go】スタックとヒープについて簡単なサンプルで確認する
はじめに メモリ領域にはスタックとヒープがあります。 スタックは関数呼び出しやその中で使われるローカル変数などが格納されるメモリ領域。 ヒープは動的にメモリが割り当てられる領域で、サイズの決まっていないデータや関数外で参照されたりする場合に使用するメモリ領域。 ヒープが大量に使用されてしまうと処理動 […]
はじめに メモリ領域にはスタックとヒープがあります。 スタックは関数呼び出しやその中で使われるローカル変数などが格納されるメモリ領域。 ヒープは動的にメモリが割り当てられる領域で、サイズの決まっていないデータや関数外で参照されたりする場合に使用するメモリ領域。 ヒープが大量に使用されてしまうと処理動 […]
はじめに ファイルに追記するプログラムを書いているときに、追記ではなく上書きされてしまうことがあり、勉強になったので書いておきます。 上書きされてしまうコード os.WriteFileメソッドを使うと、ファイルの中身が上書きされてしまう。 追記できるコード os.OpenFileメソッドで、os.O […]
はじめに PHPやLaravelで依存性の注入は書いたことがあるのでイメージできますが、Goでは書いたことがないので、書いてみました。 コード Loggerインターフェイスで持たせたいメソッドを定義しています。 そして、そのインターフェイスを満たす実装をしているのが、ConsoleLoggerとFi […]
はじめに Echoでルーティングをグループ化して、それに対してミドルウェアを追加するのにはどうやってやるのだろうと疑問に思ったので、調べてみました。 コード まず、/admin以下をグループ化するために、g := e.Group(“/admin”) を追加。 またさらにadm […]
はじめに Goでデバッグってどうやってやるんだろうと思ったので、調べてやってみました。 delve インストール VSCode拡張機能 インストール https://marketplace.visualstudio.com/items?itemName=golang.Go 動かしてみる ブレークポイ […]
はじめに 業務で古いCentOSを触ることがあり、yum installでリポジトリを指定してインストールする作業がありました。役に立つかわかりませんが、記録として書いておきます。 コマンド
はじめに dockerコマンドをdocker composeコマンドに書き換える際に、少しだけ迷ったので記録として書いておきます。 dockerコマンド 書き換え前 こちらはコンテナ名を指定する docker composeコマンド 書き換え後 こちらはサービス名を指定する
はじめに 業務でマルチバイト文字をバイト数を指定して取得する機会があり、そのときバイトの関係で文字化けしてしまったので、調査した結果を書いておきます。 コード 動かしてみる mb_strcut()を使うと、バイトのきりの良い所で文字を取得してくれるため文字化けしていません。 substr()の場合は […]
コード ルートのコマンドとして、toolkitという名前のコマンドを作成しています。 そのサブコマンドとして、countとlinesを作りました。 Useフィールドにコマンド名、Runフィールドに実行する関数を登録します。 そして、それぞれFlags().StringP()で引数を定義します。 定義 […]
コマンドラインツールを作るのは難しそうなイメージがありましたが、案外簡単に作れてしまいました。 コード main.go サンプルファイル test.txtとして保存します。 動かしてみる 引数が正しくない場合 コマンドラインの使用方法やオプションの説明が表示されます。