いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

golang

Goメモ-277 (スライスから配列へ変換する)(Go 1.17以降のやり方)

概要 サンプル 参考情報 概要 以下、自分用のメモです。よく忘れるので、ここにメモメモ。。。 以下のGo 1.20についての情報について書いてくださっている記事を見てて zenn.dev 1.20 でついに a := []string{"golang", "python", "csharp"} b := [3]string(…

Task (go-task) メモ-01 (インストール)

概要 インストール Windows Unix系 go install で入れる リポジトリ 参考情報 概要 前に以下の記事でメモした Task (go-task) さんですが、最近はMakefileの代わりにずっと利用しているので、ついでなので備忘録としてメモしていこうと思います。 最初なので…

Goメモ-276 (TCPで通信するサンプル)

概要 サンプル server.go client.go Taskfile.yml 実行結果 参考情報 概要 以下、自分用のメモです。 たまにちょこっと通信するプログラム書くときに、GoでTCP通信どうやるんやっけ??ってよくなるので、忘れないようにここにメモメモ。。。 自分用のボイラ…

Goメモ-275 (ファイルが読み込み・書き込み・実行可能かどうかを判定(2))

概要 サンプル stat.go user.go group.go other.go テスト 参考情報 概要 以下、自分用のメモです。 たまに使いたいときによく忘れているので、ここにメモメモ。。。 前回、ファイルの読み込み・書き込み・実行可能かどうかを判定するサンプルを書いてました…

Goメモ-274 (ファイルが読み込み・書き込み・実行可能かどうかを判定)

概要 サンプル 参考情報 概要 以下、自分用のメモです。 たまに使いたいときによく忘れているので、ここにメモメモ。。。 fs.FileInfo が起点で、そこから fs.FileMode を取得して判定します。 パーミッションの指定は unix ライクに 0400 とか 0644 のよう…

Goメモ-273 (ゴルーチンリークが発生するパターン (3))(処理結果によって送信側がいなくなり、受信側が放棄されてしまう)

概要 処理結果によって送信側がいなくなり、受信側が放棄されてしまう 参考情報 概要 以下、自分用のメモです。 ゴルーチン(goroutine) って、とても便利ですが、たまにリークさせてしまうことがあったりします。 基本的なパターンは決まっているのですが、…

Goメモ-272 (ゴルーチンリークが発生するパターン (2))(送信側、受信側がいなくなってしまう)

概要 送信しようとしているが受信側がいなくなってしまうパターン 受信しようとしているが送信側がいなくなってしまうパターン 参考情報 概要 以下、自分用のメモです。 ゴルーチン(goroutine) って、とても便利ですが、たまにリークさせてしまうことがあっ…

Goメモ-271 (ゴルーチンリークが発生するパターン (1))(送信側、受信側を忘れてしまう)

概要 送信側を忘れてしまっているパターン 受信側を忘れてしまっているパターン 参考情報 概要 以下、自分用のメモです。 ゴルーチン(goroutine) って、とても便利ですが、たまにリークさせてしまうことがあったりします。 基本的なパターンは決まっているの…

Goメモ-270 (runtime.Caller()とruntime.Callers()のちょっとした違い)

概要 サンプル runtime.Caller runtime.Callers 参考情報 概要 以下、自分用のメモです。 runtime.Caller() と runtime.Callers() で skip に 0 を渡したときの結果が少しだけ異なるので、忘れないうちにメモメモ。 runtime.Caller() の方は、0 を指定すると…

Goメモ-269 (Goのテンプレート機能を使ってBLOGページを作成)(GoLand Blog)

概要 参考情報 概要 以下、自分用のメモです。まだ、ちゃんと読んでいないので忘れないうちにメモメモ。。。 JetBrains の GoLand のブログ記事にて、以下がアップされていました。 blog.jetbrains.com Goのテンプレート機能、すごく便利なので、このような…

Goメモ-268 (Thirteen Years of Go)(本家ブログ)

概要 参考情報 概要 以下、自分用のメモです。 本家ブログの方で go.dev という記事が上がってましたので、記念にメモとして残しておこうという感じです。 こういう区切りの記事は個人的に結構好きです。 ついでなので、上のブログ記事の中でリンクはられて…

Goメモ-267 (TOMLファイルを書き出し)(toml, Marshal)

概要 ライブラリ取得 サンプル 参考情報 概要 以下、自分用のメモです。 以前にファイルI/O周りについては、以下の記事を書いていました。 devlights.hatenablog.com TOMLファイルを読み書きする必要がありましたので、勿体ないのでここにメモメモ。。。 TOM…

Goメモ-266 (TOMLファイルを読み込み)(toml, Unmarshal)

概要 ライブラリ取得 サンプル 参考情報 概要 以下、自分用のメモです。 以前にファイルI/O周りについては、以下の記事を書いていました。 devlights.hatenablog.com TOMLファイルを読み書きする必要がありましたので、勿体ないのでここにメモメモ。。。 TOM…

Goメモ-265 (シグナル通知設定をリセットする)(signal.Reset)

概要 サンプル 参考情報 概要 以下、自分用のメモです。よく忘れるのでここにメモメモ。。。 シグナルのハンドリングは、signal.Notify や signal.NotifyContext で行いますが たまに、リセットしたいときもあります。 その場合は、signal.Reset を利用しま…

Goメモ-264 (シグナルを無視する)(signal.Ignore)

概要 サンプル 参考情報 概要 以下、自分用のメモです。よく忘れるのでここにメモメモ。。。 シグナルのハンドリングは、signal.Notify や signal.NotifyContext で行いますが たまに、無視したいときもあります。 その場合は、signal.Ignore を利用します。…

Goメモ-263 (Wailsメモ-02 Gitpodで動く環境を構築)

概要 Gitpod の設定ファイル こんな感じ リポジトリ 参考情報 概要 以下、自分用のメモです。 前回、Windows上にインストールしてみたのですが devlights.hatenablog.com なんかビルドにすごく時間がかかったりするので ついでなので、Gitpod上で試せる環境…

Goメモ-262 (Wailsメモ-01 インストール)

概要 インストール UPX のインストール Wails のインストール 確認 試してみる 参考情報 概要 以下、自分用のメモです。なんか面白そうなので、ちょっと使い方とかメモしようと思いました。 WailsというGoでクロスプラットフォームなGUIアプリを開発できるラ…

Goメモ-261 (go install 時に一時的に別の場所にインストールする)

概要 試してみる 参考情報 概要 以下、自分用のメモです。たまーに使うときに、いつも忘れているのでここにメモメモ。。。 go install で何かのコマンドとかをインストールする場合、そのまま実行すると "$(go env GOPATH)/bin" の下に配置されます。 でも、…

Goメモ-260 (go.modのモジュール名を変更)(go mod edit -module)

概要 試してみる 参考情報 概要 以下、自分用のメモです。たまーに使うときに、いつも忘れているのでここにメモメモ。。。 go.mod ファイルのモジュール名を変更したいときがたまにあります。 エディタで直接編集してもいいのですが、go mod というコマンド…

Goメモ-259 (The Go Handbook)(freeCodeCamp, チュートリアル)

概要 参考情報 概要 以下、自分用のメモです。Goを始める人にオススメの記事があったので忘れないうちにメモメモ。。。 www.freecodecamp.org 文字数は多い記事ですが、基本から分かりやすく書いてあると感じました。 あえて、非同期関連やジェネリクスなど…

Goメモ-258 (Non UTF-8 なXMLデータをデコード)(CharsetReader, Shift_JIS)

概要 サンプル 参考情報 概要 知らなかったので、忘れないうちにメモメモ。。。 通常、XMLのエンコーディングはUTF-8となっているものがほとんどですが、業務とかだと稀に Shift_JIS とかなっている場合があります。 例えば、以下のような感じ。 <data> <hello>へろー</hello> <world>ワ</world></data>…

Goメモ-257 (複数のmain関数を共存させる)(go:build ignore)

概要 試してみる main1.go main2.go Taskfile.yml 参考情報 概要 知らなかったので、忘れないうちにメモメモ。。。 以下のmattnさんのツイートで知りました。感謝。 go run でしか実行しないのであれば go:build ignore を書いておくと同じディレクトリに置…

Goメモ-256 (fmt.Scan, fmt.Scanfのメモ)

概要 一つの値を読み取り 複数の値を読み取り 書式に従って値を読み取り 参考情報 概要 以下自分用のメモです。たまにしか使わないんですが、その度に使い方微妙に忘れるのでここにメモメモ。。。 一つの値を読み取り package scanop import ( "fmt" "github…

Goメモ-255 (Stackoverflow の Go Collective が閉鎖された)

概要 参考情報 概要 devlights.hatenablog.com で記載していた Go Collective が今日みたら閉鎖されていました。 多分、スポンサーがいなくなったんでしょうね。 ちょこちょこ見ていたので少し残念。 参考情報 プログラミング言語Go作者:アラン・ドノバン,ブ…

Goメモ-254 (go tool pprof でインタラクティブモードに入らずに結果を出力)

概要 参考情報 概要 以下自分用のメモです。よく忘れるのでメモメモ。。。 pprof パッケージを使って採取したプロファイル結果を確認したい場合 $ go tool pprof /path/to/profile/path (e.g. cpu.pprof) で確認できますが、インタラクティブモードに入って…

各言語のリリースノートについて (バージョン, 歴史, 追加機能)

概要 C# Java Python Go Javascript 概要 以下、自分用のメモです。 たまに、古いバージョンのアプリをメンテしたりするときに、「このバージョンのときって、どんな機能が追加された時だっけ??」ってなることがあるので、よく利用する言語毎にメモメモ。…

Goメモ-253 (go tool trace コマンドを使って実行トレースを見る)(runtime/trace)

概要 サンプル 参考情報 概要 以下自分用のメモです。よく忘れるのでメモメモ。。。 Goには標準で実行トレースを採取する機能がついています。pprofとかもあるのですが、手軽に扱えるのが runtime/trace さん。 これをトレースを取りたいプログラムの先頭で …

Goメモ-252 (文字列に対してのruneとbyteでの操作)

概要 サンプル 参考情報 概要 Goを始めた人からよく聞かれる内容なので、ついでにここにメモメモ。。。 Goで文字列は string ですが、他の言語と同様にイミュータブル(不変)です。 文字列の内容を一部だけ変更したい場合でも、新しい文字列を作る必要があ…

Goメモ-251 (チャネルの内容をスライスにする)(chans.Slice, chans.SliceContext)

概要 サンプル チャネル関連の記事 参考情報 概要 小ネタ。せっかくサンプル作ったので、ここにメモメモ。 チャネルを使って処理することはよくありますが、チャネルのデータをスライスにしてしまいたいときも結構あります。 Go 1.18 までは、それぞれの型ご…

Goメモ-250 (特定の値がスライスに含まれているかを判定)(slices.Contains)

概要 サンプル 参考情報 概要 以下、自分用のメモです。忘れないうちにメモメモ。。。 Go 1.18 が出るまではジェネリクスが無かったので、特定の値がスライスに含まれているかどうかは自分でループさせて確認するのがGoでは普通でした。 で、以前記事にした …