Facilitatorパターンの紹介

最近ちょろっとgo 1.18beta1を使ってGenericsに触れたので、GoのGenerics関連の実装パターンを紹介する。 Generics facilitators in Goで@rakyll氏が紹介していたFacilitatorsというパターンだ。 といってもそんなに難しいものではない。理解すべき点は2つ。 Goではメソッドに型パラメータを持たせられないという制約がある 代わりにレシーバをパラメータ化できる ジェネリックなメソッドがほしいときは一度ジェネリックな型の値を返し、その型で目的のメソッドを実装する。 この中間で一度挟んでいる型をFacilitatorと呼んでいる。 ...

1月 24, 2022 · garsue

GoでGCのタイミングをprintデバッグする

runtime.SetFinalizerを使って値ごとのデバッグプリント関数を仕込むことでGCされたときにデバッグログを残すテクニックを教え...

9月 12, 2021 · garsue

Fuzzing in Go

Fuzzing testがacceptされた。 ここらでGoにおけるFuzzingの現状をまとめておく。 Fuzzingとは 自動生成した入力値(テストケース)...

4月 4, 2021 · garsue

GoBoyのビルド

GoBoyをWindows環境でビルドするのにやった作業を残しておく。 MinGW WindowsでのビルドはMinGWが必要になる。MinGWを入れる...

2月 7, 2021 · garsue

GoLandさんジェネリクスサポートがんばってる

Experimenting with Go Type Parameters (Generics) in GoLand – GoLand Blog | JetBrainsを読んだ感想。 前段はGoのジェネリクス導入に関する今までの歴史と現状のGo2実装を手元で動かす方法...

11月 29, 2020 · garsue

GitLab CLIツール Glab

言いたいこと GitLab使いはGlab使うといいぞ。 基本パターン MR glab mr create glab mr view glab mr merge ghと違ってpushまではやってくれないので注意。 CI/...

11月 8, 2020 · garsue

しょうもないSlackのスラッシュコマンドつくった

N営業日後の日付を教えてくれるSlackのスラッシュコマンドをつくった。 N🈺 /nei 5 とか打てば指定した日数後の営業日を教えてくれる。 「営業日」の...

9月 27, 2020 · garsue