- 2024年7月7日
Goでコマンドラインツールを作ってみた
コマンドラインツールを作るのは難しそうなイメージがありましたが、案外簡単に作れてしまいました。 コード main.go サンプルファイル test.txtとして保存します。 動かしてみる 引数が正しくない場合 コマンドラインの使用方法やオプションの説明が表示されます。
コマンドラインツールを作るのは難しそうなイメージがありましたが、案外簡単に作れてしまいました。 コード main.go サンプルファイル test.txtとして保存します。 動かしてみる 引数が正しくない場合 コマンドラインの使用方法やオプションの説明が表示されます。
Goのジェネリクスがよく理解できていなかったので、調べてみました。 ジェネリクス導入前 int型、float64型のそれぞれで同じ処理をする関数を定義しています。 型が異なるので、両者を一緒に計算したり、戻り値で返したりすることができません。 ジェネリクス導入後 Addable型を定義して、それをs […]
ディレクトリ作成 ディレクトリ作成(再帰) ディレクトリ一覧取得 ディレクトリ一覧取得(再帰) ディレクトリ削除 ディレクトリ削除(再帰)
はじめに Goで関数のパフォーマンスを測ってみたいと思い、調べて使ってみました。 コード 文字列をループで回して結合する関数stringsのJoinで結合する関数どちらのほうがパフォーマンスがいいか計測してみます。 ここでは、1000個の配列テストデータを作成して、それを対象関数に渡しています。te […]
タイトルどおり、Goでトランザクションを張って処理を実行してみます。 コード ポイントは、defer tx.Rollback()で、ロールバックを予約しておくことです。 こうしておくことで、処理がコケたときに自動でロールバックが実行されるようになります。 コミット後にロールバックが実行されても処理が […]
Goでファイルの読み書きをしてみようと思い、書いてみました。 os.Create()でファイルを作り、その戻り値のfile.Write()でデータを書き込み、そのファイルを最後に読み込んでいます。 動かしてみる
クライアントとサーバーで双方向通信ができるWebSocket通信を、Goでやってみました。 Goのコード Go側では、gorilla/websocketパッケージを利用して、WebSocketの接続を待ち受けます。 接続を確立した後は、for文で永続的にコネクションを維持します。 サーバーからのプッ […]
gitで別ブランチの変更をコミット単位で持ってこれる、cherry-pickコマンドはありますが、その変更の全てがほしいわけではなく、一部ファイルの変更だけが欲しい場面がたまにあります。 そういうときに使えるコマンドがあったので、紹介します。 たとえば、featureブランチにある特定ファイルの変更 […]