Go言語関連記事のリンク集
後で見るとマークしている情報へのリンク集です。(順不同)
関連情報
宜しければ、こちらもご参照ください。
basics
styleguilde
library
-
hq
-
holiday_jp-go
-
go-pairplot
-
qframe
-
gota
-
gofakeit
-
go-funk
- C#のLinqのようにシーケンスを処理することができるようになるライブラリ
-
cobra
-
viper
-
testify
- xUnit系のノリでユニットテストを書くことができるライブラリ (assert.Equalとか)
-
eris
- xerrors, pkg/errors, Go1.13 errorsパッケージにインスパイアされたエラーライブラリ
-
wails
- バックエンドにGo、フロントエンドにWebを採用するGuiフレームワーク
- wails.app
-
godotenv
-
ratelimit
- leaky-bucket rate limit algorithm
- go-pretty
-
urfave/cli
-
mitchellh/cli
- 有名なコマンドライン作成用ライブラリの一つ(この上の urfave/cli の方が有名度は高い)
- go-flags
-
clipboard
-
redigo
-
assets-life
-
go-sqlite3
- screenshot
-
gotop
- Goで作成された
top
をリッチにした感じのCUIアプリケーション
-
bitvector
-
goexec
-
python -c
のようにワンライナーを実行できるようにしてくれるライブラリ
-
hugo
-
litter
-
watermill
- Watermill is a Go library for working efficiently with message streams.
-
v8go
- ristretto
-
packr
- sprig
-
parallelizer
- go func などで待ち合わせなどを行う際にいちいち sync.WaitGroup などを使わなくてもよくなるライブラリ
-
script
- Goでシェルライクなスクリプトをかけるようにしてくれるライブラリ
-
godu
- 指定されたディレクトリ配下の大きなサイズを持つファイルを探すツール
-
du
コマンドみたいな感じ
- gogs
-
go-funk
- go-linqやkoazeeと同じようなライブラリ
-
go-linq
- GoでC#のLinqみたいな操作を出来るようになるライブラリ
-
koazee
- 配列やスライスをJavaのStreamやC#のLinqみたいに扱えるようにしてくれるライブラリ
-
backoff
- Exponential backoff アルゴリズム
-
errors
-
lazygit
- gocuiを利用してる git 操作のための tui アプリケーション
-
go-cmp
-
ini
- sftpgo
- tinygo
-
tview
-
gocui
-
goban
-
yaegi
- vecty
-
bokchoy
- Redisをバックエンドに利用しているシンプルなジョブキューライブラリ
-
go-echarts
-
excelize
- Excelを操作できるライブラリ。
xlsx
と比べて多機能
- セル指定が
A1
形式なのですこし使いづらい印象
-
xlsx
- Excelを読み書きできるライブラリ。シートコピーなどは出来ない
- セルの指定が
sheet.Rows[y].Cells[x].Value
と出来るので使いやすい
- tablewriter
-
gin
- 軽量 Web フレームワーク
- ハイパフォーマンス (内部で httprouter を利用している)
-
httprouter
-
golang-set
-
goquery
- jqueryライクにHTMLを操作できるライブラリ
- deque(Extremely fast ring-buffer deque)
-
gore
- Yet another Go REPL
- Go言語用のREPL
-
tint
-
sprig
- Goのテンプレートエンジンで利用できる便利関数ライブラリ
-
go-task
- makeの代替として利用できるGoで作られているタスクランナー、ビルドツール
-
hystrix-go
-
netpoll
- About A high-performance non-blocking I/O networking framework focusing on RPC scenarios.
- ノンブロッキング I/O ネットワークフレームワーク
-
mattn/go-sqlite3
- sqlite3 driver for go using database/sql
-
glebarez/go-sqlite
- pure-Go SQLite driver for Go (SQLite embedded)
-
modernc.org/sqlite
- a CGo-free port of SQLite/SQLite3.
-
uptrace/bun
-
sqlx
- general purpose extensions to golang's database/sql
-
sqlc
- Generate type-safe code from SQL
-
textql
- Execute SQL against structured text like CSV or TSV
-
xlsxsql
- A CLI tool that executes SQL queries on various files including xlsx files and outputs the results to various files
-
trdsql
- CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.
-
gorm
- The fantastic ORM library for Golang, aims to be developer friendly
-
ent
- An entity framework for Go
-
go-ordered-map
- Optimal implementation of ordered maps for Golang
-
shmipc-go
- high performance inter-process communication library developed by ByteDance
-
gev
- A lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode.
-
tcp-shaker
- Perform TCP handshake without ACK in Go
-
gonet
- A TCP/IP network stack written in Go
-
netstack
- IPv4 and IPv6 userland network stack
- 2020年にアーカイブされているが、参考になる実装がある
-
gnet
- a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go
- 通信系ライブラリの中では一番スターが多い感じ
-
networkGo
- Examples of how to use Go to work with the network
- 通信処理のサンプルが置いてある
-
arpc
- More effective network communication, two-way calling, notify and broadcast supported
-
TheAlgorithms/Go
-
tablewriter
- ASCII table in golang
- 使いやすい
-
go-texttable
- go-texttable provides creating text table
- 使いやすい
-
fsnotify
- Cross-platform file system notifications for Go
- クロスプラットフォームで使える FileWatcher ライブラリ
-
flaggy
- フラグ管理ライブラリ。依存ライブラリが無くインストールしやすい
- サブコマンドやサブコマンドのサブコマンドも作成可能
-
lux
- fast and simple video downloader built with Go.
goland
IDE Features
Modules
Refactoring
Debug
TDD
Misc
tui
many_golang_articles
golang-memo
- gocloc (Goで作られた cloc クローン)
- git pull した後にファイルの日付をコミット時のものに変更する
- Goで作られたタスクランナー (makeの代わりに, go-task/task, Taskfile.yml)
- CUIで動くファイラ LF (Terminal file manager)
- rpmのファイル名からパッケージとかバージョンとかを抽出
- TCPソケットがclose状態の時の挙動についての情報メモ (Writing to a closed, local TCP socket not failing)
- ChromebookのLinux (ベータ版)のDebian 9 (stretch) を 10 (buster) にアップグレード
- go.mod ファイルのGoランタイムのバージョン変更の仕方 (go mod edit)
- go build のちょっとしたクセ (go buildは指定されたディレクトリをビルド対象にする)
- go fmt をプロジェクト配下の全ファイルに対して実行したい
- Goメモ-01 (インストール)
- Goメモ-02 (HelloWorld)
- Goメモ-03 (GOPATH, ワークスペース, プロジェクトレイアウト)
- Goメモ-04 (ライブラリの公開と利用, go get, go mod)
- Goメモ-05 (import, Tour of Go)
- Goメモ-06 (Top 25 editing features of GoLand IDE, JetBrains)
- Goメモ-07 (Exported names, 公開スコープ, Tour of Go)
- Goメモ-08 (Functions, 関数, Tour of Go)
- Goメモ-09 (Basic Types, 基本型, Tour of Go)
- Goメモ-10 (Zero values, ゼロ値, Tour of Go)
- Goメモ-11 (明示的な型変換, Type conversions, Tour of Go)
- Goメモ-12 (定数, Constant, Tour of Go)
- Goメモ-13 (chromebookでのgolang環境設定メモ, go1.13.4)
- Goメモ-14 (ループ, For, Tour of Go)
- Goメモ-15 (分岐, If, Tour of Go)
- Goメモ-16 (今の環境を崩さずにお手軽に別のバージョンのgoを使う)
- Goメモ-17 (分岐, Switch, Tour of Go)
- Goメモ-18 (遅延呼び出し, Defer, Tour of Go)
- Goメモ-19 (ポインタ, Pointer, Tour of Go)
- Goメモ-20 (構造体, Structs, Tour of Go)
- Goメモ-21 (50 Shades of Go, Goでよくやりがちな間違い50個)
- Goメモ-22 (配列, Arrays, Tour of Go)
- Goメモ-23 (スライス, Slices, Tour of Go)
- Goメモ-24 (マップ, Maps, Tour of Go)
- Goメモ-25 (メソッド, Methods, Tour of Go)
- Goメモ-26 (インターフェース, Interface, Tour of Go)
- Goメモ-27 (空インターフェース, Empty interface, Tour of Go)
- Goメモ-28 (GoLand 2019.3, チュートリアルプロジェクト, ショートカットメモ)
- Goメモ-29 (空構造体, Empty struct)
- Goメモ-30 (型検証, Type Assertions, Tour of Go)
- Goメモ-31 (型判定switch, Type Switch, Tour of Go)
- Goメモ-32 (エラー, Errors, Tour of Go)
- Goメモ-33 (Go Modules がオンの状態でライブラリ変更してPUSHする前に使われている箇所の当たりをテストしたい)
- Goメモ-34 (モジュールの新しいバージョンをリリースしたのに go list -u -m all しても反映されない件)
- Goメモ-35 (モジュールのメジャーバージョンを2以降にした場合の取り扱い方について)
- Goメモ-36 (スライスのポインタについて)
- Goメモ-37 (stringとruneとbyteの変換)
- Goメモ-38 (io.Readerインターフェース, Readers, Tour of Go)
- Goメモ-39 (ゴルーチン, Goroutines, Tour of Go)
- Goメモ-40 (ビルトイン関数のprintとfmt.Printの違い
- Goメモ-41 (logパッケージのフラグ設定についてのメモ, log.Flags, log.SetFlags)
- Goメモ-42 (sentry-goパッケージを使ってエラー情報をsentryで表示)
- Goメモ-43 (sentry-goをゴルーチン内で利用する場合の注意点)
- Goメモ-44 (スライスのクリア、及び、nilスライスと空スライス)
- Goメモ-45 (Excelの各シートのズーム倍率を揃える)
- Goメモ-46 (Excelの各シートの最初のセルを選択状態にする)
- Goメモ-47 (Excelの特定シートのフッターの値を調整
- Goメモ-48 (Excelの特定シートの印刷の向きを調整)
- Goメモ-49 (ゴルーチンとチャネルでProducer/Consumer処理を作る)
- Goメモ-50 (go1.14の新機能をちょこっと試す(インターフェースのオーバーラップ可能))
- Goメモ-51 (XDG Base Directory 仕様の取り扱い (xdgパッケージ))
- Goメモ-52 (bcryptパッケージを使ってパスワードをハッシュ化)
- Goメモ-53 (チャネル (channel), Goroutines, Tour of Go)
- Goメモ-54 (select, Goroutines, Tour of Go)
- Goメモ-55 (sync.Mutex, Goroutines, Tour of Go)
- Goメモ-56 (Excelシートのページ区切りの先頭にメッセージ入れる)
- Goメモ-57 (Excelシートの画像の上にNo.XXってナンバリングしていく)
- Goメモ-58 (GoLandで変数のシャドウイングを検知するように設定する)
- Goメモ-59 (現在のメモリ使用量を取得, runtime.MemStats)
- Goメモ-60 (インターフェースをちゃんと実装しているか検証するTips)
- Goメモ-61 (ループ内でdeferする場合のTips)
- Goメモ-62 (sync.WaitGroupとerrgroupパッケージ)
- Goメモ-63 (Shift-JISとEUC-JPなファイルを扱う)
- Goメモ-64 (testing.T.Logメソッドの挙動がgo1.13とgo1.14で異なる)
- Goメモ-65 (ゴルーチンと再帰処理の組み合わせメモ)
- Goメモ-66 (どれか一つのチャネルが閉じたら閉じるチャネル, WhenAny)
- Goメモ-67 (複数の全てのチャネルが閉じたら閉じるチャネル, WhenAll)
- Goメモ-68 (型の組み込みについてのメモ, Embedded, Effective-Go)
- Goメモ-69 (指定された値を繰り返すチャネル, Repeat)
- Goメモ-70 (チャネルから指定された個数分取得するチャネル, Take)
- Goメモ-71 (指定されたチャネルのどちらかが閉じたら閉じるチャネル, OrDone)
- Goメモ-72 (指定されたチャネルのシーケンスを順に消費していくチャネル, Concat)
- Goメモ-73 (fan-in パターンでデータを集約するチャネル, FanIn)
- Goメモ-74 (複数のOrDoneチャネルを使って処理, OrDone, FanOut, Workers)
- Goメモ-75 (一つの入力を複製して2つにするチャネル, Tee)
- Goメモ-76 (ループ用のチャネル, Loop, LoopInfinite)
- Goメモ-77 (シーケンスをチャネルにする, ForEach)
- Goメモ-78 (指定したインターバルでデータを出力するチャネル, Interval)
- Goメモ-79 (指定されたワーカー数でファンアウトさせる関数, FanOut)
- Goメモ-80 (go test のキャッシュを削除するやり方メモ)
- Goメモ-81 (複数のsync.WaitGroupをまとめて管理する型, MergedWaitGroup)
- Goメモ-82 (デバッグ時に表示される文字列表現, GoLand, DebugString)
- Goメモ-83 (チャネルの要素に対してインデックスを付与して返す関数, Enumerate)
- Goメモ-84 (指定した分チャネルからのデータをスキップする関数, Skip,SkipWhile)
- Goメモ-85 (チャネルからのデータをフィルタリングする関数, Filter)
- Goメモ-86 (チャネルの要素に指定された処理を適用した結果を返す関数, Map)
- Goメモ-87 (2つのスライスを結合する, slice concatenate)
- Goメモ-88 (スライスから配列にコピーする)
- Goメモ-89 (go-cmp の使い方メモ)(比較処理用のライブラリ, Comparer)
- Goメモ-90 (Go の enum と iota の使い方メモ)
- Goメモ-91 (VS Code の Go 拡張機能 がGo公式プロジェクトになった)
- Goメモ-92 (/dev/null のように出力を捨てる io.Writer)(ioutil.Discard)
- Goメモ-93 (go で SSH接続メモ (1))
- Goメモ-94 (go で SSH接続メモ (2))
- Goメモ-95 (go で SSH接続メモ (3))
- Goメモ-96 (スライスの要素のクリアについて)(要素削除, メモリ状態をキープ)
- Goメモ-97 (Go 1.15 のリリースノートと翻訳版)
- Goメモ-98 (Go 1.15 リリース と ついでにchromebook linux の go をアップデート)
- Goメモ-99 (ループ変数をポインタ渡しすると意図せぬ動作になる場合がある)
- Goメモ-100 (省略変数宣言 := と変数スコープ でよくやってしまうミス )
- Goメモ-101 (ビット操作メモ, ビット演算子)
- Goメモ-102 (Explicit argument indexes, Printfで同じパラメータを使い回す)
- Goメモ-103 (Go で Unix domain socket (AF_UNIX) のメモ)
- Goメモ-104 (pkg.go.devの 公式バッジ ジェネレーター)
- Goメモ-105 (gRPCでUnixドメインソケットのメモ)
- Goメモ-106 (「プログラミング言語Go完全入門」が公開されている)
- Goメモ-107 (go getで参照しているパッケージを一括更新)
- Goメモ-108 (Protocol Buffers でシリアライズとデシリアライズ)
- Goメモ-109 (go test 時に -tags を付けて実行するテストを制御)
- Goメモ-110 (フォーマット書式の %*s について)
- Goメモ-111 (ビルド時にデバッグ情報とかを消してサイズを小さくする, ldflags, trimpath, upx)
- Goメモ-112 (配下の全パッケージに対してgolint と go vet する)
- Goメモ-113 (tealeg/xlsx にて1セルに複数行テキストを設定した場合のメモ)
- Goメモ-114 (WSL1だとVSCodeでGoのデバッグが出来ない)
- Goメモ-115 (VSCode(Gitpod)でGoプログラムのデバッグ時に標準入力がサポートされない?)
- Goメモ-116 (文字列末尾の改行を除去)(strings.TrimRight)
- Goメモ-117 (外部テストパッケージについて)(External Test Package)
- Goメモ-118 (go list でビルド対象ファイルとテストファイルを出力)
- Goメモ-119 (time.Tickとtime.NewTickerの使い分け)
- Goメモ-120 (play-with-go.dev)(インタラクティブにGoの勉強が出来るサイト)
- Goメモ-121 (ゴルーチンの完了検知方法あれこれ)
- Goメモ-122 (別ファイルのExcelシートをコピーしてもってくる)
- Goメモ-123 (selectでのチャネル選択の有効無効を切り替える)
- Goメモ-124 (画像ファイルをExcelに挿入する)
- Goメモ-125 (どれか一つが完了したら完了するコンテキスト, WhenAny)
- Goメモ-126 (全部完了したら完了するコンテキスト, WhenAll)
- Goメモ-127 (データをバッファリングして吐き出すチャネル, Buffer)
- Goメモ-128 (Go 1.16から io/ioutil パッケージが Deprecated な方向になっていく)
- Goメモ-129 (ファイルのパーミッションを取得)
- Goメモ-130 (Go 1.16 リリース)
- Goメモ-131 (Go 1.16 リリースで気になったところメモ)
- Goメモ-132 (Go 1.16で追加された signal.NotifyContext())
- Goメモ-133 (PowerShell環境でビルド時にGOOSとGOARCHの指定の仕方)
- Goメモ-134 (go build 時にバージョン情報などを埋め込み)(ldflags, -X)
- Goメモ-135 (embedパッケージを使ってバージョン情報などを埋め込み)
- Goメモ-136 (Exampleテストで非同期結果をテストする)
- Goメモ-137 (exec.Command で シェルの展開機能 を利用する)
- Goメモ-138 (staticcheck で警告をコメントで抑制する)
- Goメモ-139 (exec.Command で標準出力と標準エラー出力を両方取得)
- Goメモ-140 (exec.Command で標準入力・標準出力・標準エラー出力を全部指定)
- Goメモ-141 (exec.Command で Context 付きでコマンド実行)
- Goメモ-142 (exec.Command で パイプストリーム を使ってコマンド実行)
- Goメモ-143 (構造体のメンバ定義順によるメモリのパディングについて)
- Goメモ-144 (embed メモ (単独ファイル, 文字列で取得))
- Goメモ-145 (embed メモ (単独ファイル, バイナリで取得))
- Goメモ-146 (embed メモ (単独ファイル, embed.FSで取得))
- Goメモ-147 (embed メモ (複数ファイル, embed.FSで取得))
- Goメモ-148 (embed メモ (埋め込み対象を絞り込み, embed.FSで取得))
- Goメモ-149 (Goでのループの書き方)
- Goメモ-150 (プログラミング言語GoのKindle版が出てた)
- Goメモ-151 (mainパッケージの中でビルドタグ使って複数のmain関数を定義)(+build run)
- Goメモ-152 (複数の *exec.Cmd をパイプストリームでつないでコマンド実行する)
- Goメモ-153 (Goでのファイル I/O のやり方まとめ)
- Goメモ-154 (go run したら unsupported VMA range って出た)(Chromebook, ARM64)
- Goメモ-155 (StackOverflow Collectives に Go の Collective がオープン)
- Goメモ-156 (go test で short モード時にスキップするテストを書く)(-short, t.Skip)
- Goメモ-157 (bytes.Bufferはとても便利)
- Goメモ-158 (base64 エンコードとデコード)
- Goメモ-159 (ExcelのシートをPDFに変換)
- Goメモ-160 (8ビット グレースケール 画像を作る)
- Goメモ-161 (go.mod の 内容を Go 1.17 に調整する)
- Goメモ-162 (crypto/tls/generate_cert.go を使ってオレオレ証明書作成)
- Goメモ-163 (非同期パターンがまとまっているリポジトリ)(go-concurrency-patterns)
- Goメモ-164 (SIGQUITを送ってgoroutineのダンプを取る)
- Goメモ-165 (Go 1.18 Beta1 がリリース)
- Goメモ-166 (stringsとbytesパッケージにCut関数が追加, Go 1.18)
- Goメモ-167 (テストとカバレッジとベンチマークとプロファイルのやり方)
- Goメモ-168 (ビットフラグ)
- Goメモ-169 (HelloWorldで遊ぶ)(同期、非同期)
- Goメモ-170 (循環リスト)(container/ring, 直近N件分だけ保持していたい)
- Goメモ-171 (logパッケージのprefixの出力位置をメッセージの前にしたい)
- Goメモ-172 (encoding/hexパッケージ)
- Goメモ-173 (ローカルタイムゾーンを変更)(TZ, time.Local)
- Goメモ-174 (sync.Mutexのサンプル)
- Goメモ-175 (N個のチャネルのどれかから値を取得)(reflect.Select, SelectCase)
- Goメモ-176 (ジェネリックのメモ)(go1.18, Generic)
- Goメモ-177 (リリース前の機能も含めて最新のGoを試す)(gotip, gccない環境でインストール)
- Goメモ-178 (go test で使うテストデータは testdata ディレクトリに置く)
- Goメモ-179 (スタックトレースを取得するやり方メモ)
- Goメモ-180 (Goの歴史についてまとめてあるサイト) (golang.design, Go: A Documentary)
- Goメモ-181 (Effective Goに「今後更新する予定はありません (There are no plans to update it)」の補足が追加されている)
- Goメモ-182 (Goの情報が沢山公開されているサイト)
- Goメモ-183 (Goで実行時に型を知るためのやり方メモ)
- Goメモ-184 (Goで http GET と POST のリクエストの発行)
- Goメモ-185 (Go 1.18 リリース)(Generics, Fuzzing, Workspaces mode)
- Goメモ-186 (forループで2つの変数を定義して使う)
- Goメモ-187 (os.Mkdir() などで指定するパーミッションについて)(os.ModePerm, 0777)
- Goメモ-188 (go.mod の バージョンを go 1.18 に変更する)
- Goメモ-189 (GoでJavaVMみたいにSIGQUITでスレッドダンプを採取できるようにする)
- Goメモ-190 (Scanner を使った処理でのパフォーマンスTips)
- Goメモ-191 (strconvパッケージ Tips)(ParseInt の第3引数 bitSize について)
- Goメモ-192 (strconvパッケージ Tips)(ParseInt の第2引数 base について)
- Goメモ-193 (strconvパッケージ Tips)(16進数文字列から10進数へ変換)
- Goメモ-194 (strconvパッケージ Tips)(2進数文字列から10進数へ変換)
- Goメモ-195 (strconvパッケージ Tips)(16進数文字列から2進数文字列へ変換)
- Goメモ-196 (strconvパッケージ Tips)(2進数文字列から16進数文字列へ変換)
- Goメモ-197 (*exec.Cmd 実行時に追加の環境変数を渡す)
- Goメモ-198 (*exec.Cmd 実行時にワーキングディレクトリを指定する)
- Goメモ-199 (*exec.Cmd 実行時にコマンドの引数指定にスライスを使う)
- Goメモ-200 (static linkedなバイナリを作る)(os/user, net, 静的リンク)
- Goメモ-201 (無償で読めるGoの電子書籍 (softchris/golang-book))
- Goメモ-202 (type alias と defined type の違い)
- Goメモ-203 (Goで非同期処理する際のガイドブック的な資料, go-concurrency-guide)
- Goメモ-204 (windowsでexe実行時にコマンドプロンプトが出ないようにビルド, windowsgui)
- Goメモ-205 (ジェネリクスを使うとき・使わないときの指針)
- Goメモ-206 (sliceにデータを追加する際のパフォーマンス比較について)
- Goメモ-207 (sliceの3つ目のインデックスパラメータの使い方)
- Goメモ-208 (golang.org/x/exp/constraints)(Go 1.18 リリース時には含まれなかった制約型)
- Goメモ-209 (golang.org/x/exp/slices)(Go 1.18 リリース時には含まれなかった汎用スライス処理)
- Goメモ-210 (golang.org/x/exp/maps)(Go 1.18 リリース時には含まれなかった汎用マップ処理)
- Goメモ-211 (The Go Programming Language and Environment)(Goの作者5人による寄贈記事)
- Goメモ-212 (log.Fatalとlog.Panicの違い)
- Goメモ-213 (runtime.Goschedについて)(yield, 実行権の放棄)
- Goメモ-214 (archive/zip を使ったZipファイル生成サンプル)
- Goメモ-215 (archive/tar を使ったtarファイル生成サンプル)
- Goメモ-216 (time.Time から時刻部分をクリアしたい場合)
- Goメモ-217 (RSS 2.0 を読み込むサンプル)
- Goメモ-218 (Atom Feed を読み込むサンプル)
- Goメモ-219 (Go が 内部で利用しているスレッド数を表示するサンプル)
- Goメモ-220 (標準ライブラリのpluginパッケージで簡易プラグイン処理)
- Goメモ-221 (構造体のタグ情報(Struct Tag)を取得)
- Goメモ-222 (Goが対応している GOOS/GOARCH の組み合わせを出力)
- Goメモ-223 (bufio.Scanner で カスタムな bufio.SplitFunc を利用するやり方)
- Goメモ-224 (スライスはスレッドセーフではない)
- Goメモ-225 (ジェネリックなビットフラグ処理)
- Goメモ-226 (http.ListenAndServeで起動したサーバをシャットダウンする)
- Goメモ-227 (URLクエリからパラメータを取得)(Go Collective)
- Goメモ-228 (効率的に文字列を結合する)(Go Collective)
- Goメモ-229 (マップはスレッドセーフではない)
- Goメモ-230 (メモリコピー無しで []byte から string へ変換する)(unsafe)
- Goメモ-231 (メモリコピー無しで string から []byte へ変換する)(unsafe)
- Goメモ-232 (xmlのMarshal/Unmarshalで入れ子の要素を指定)
- Goメモ-233 (ライブラリの利用可能バージョンを表示)(go list -m -versions)
- Goメモ-234 (カバレッジの結果をHTMLで出力)(coverprofile, go tool cover)
- Goメモ-235 (ランダムでテストの実行)(go test, shuffle)
- Goメモ-236 (指定回数分テストを実行)(go test, count)
- Goメモ-237 (別プロセスにシグナルを送る)(os.FindProcess, /proc)
- Goメモ-238 (Go 1.19 がリリース)
- Goメモ-239 (bep/logg というログライブラリ使ってみた)
- Goメモ-240 (go install したアプリを go clean で消す方法)
- Goメモ-241 (go testの結果をjson形式で出力)(go test -json, jq)
- Goメモ-242 (charmbracelet/bubbletea にマルチバイトサポートが入った)(v0.22.1)
- Goメモ-243 (flag.FlagSetを使う)
- Goメモ-244 (GoでDeprecatedの表し方)
- Goメモ-245 (ビルド時にキャッシュを使わないように設定する)(force rebuild)
- Goメモ-246 (セキュリティ的に安全な乱数を取得する)(crypto/rand, Reader)
- Goメモ-247 (crypto/aesで暗号化と復号)(ECB, Electronic Codebook Mode)
- Goメモ-248 (crypto/aesで暗号化と復号)(CBC, Cipher Block Chaining Mode)
- Goメモ-249 (特定のGOOS,GOARCHで標準ライブラリをpre buildする)
- Goメモ-250 (特定の値がスライスに含まれているかを判定)(slices.Contains)
- Goメモ-251 (チャネルの内容をスライスにする)(chans.Slice, chans.SliceContext)
- Goメモ-252 (文字列に対してのruneとbyteでの操作)
- Goメモ-253 (go tool trace コマンドを使って実行トレースを見る)(runtime/trace)
- Goメモ-254 (go tool pprof でインタラクティブモードに入らずに結果を出力)
- Goメモ-255 (Stackoverflow の Go Collective が閉鎖された)
- Goメモ-256 (fmt.Scan, fmt.Scanfのメモ)
- Goメモ-257 (複数のmain関数を共存させる)(go:build ignore)
- Goメモ-258 (Non UTF-8 なXMLデータをデコード)(CharsetReader, Shift_JIS)
- Goメモ-259 (The Go Handbook)(freeCodeCamp, チュートリアル)
- Goメモ-260 (go.modのモジュール名を変更)(go mod edit -module)
- Goメモ-261 (go install 時に一時的に別の場所にインストールする)
- Goメモ-262 (Wailsメモ-01 インストール)
- Goメモ-263 (Wailsメモ-02 Gitpodで動く環境を構築)
- Goメモ-264 (シグナルを無視する)(signal.Ignore)
- Goメモ-265 (シグナル通知設定をリセットする)(signal.Reset)
- Goメモ-266 (TOMLファイルを読み込み)(toml, Unmarshal)
- Goメモ-267 (TOMLファイルを書き出し)(toml, Marshal)
- Goメモ-268 (Thirteen Years of Go)(本家ブログ)
- Goメモ-269 (Goのテンプレート機能を使ってBLOGページを作成)(GoLand Blog)
- Goメモ-270 (runtime.Caller()とruntime.Callers()のちょっとした違い)
- Goメモ-271 (ゴルーチンリークが発生するパターン (1))(送信側、受信側を忘れてしまう)
- Goメモ-272 (ゴルーチンリークが発生するパターン (2))(送信側、受信側がいなくなってしまう)
- Goメモ-273 (ゴルーチンリークが発生するパターン (3))(処理結果によって送信側がいなくなり、受信側が放棄されてしまう)
- Goメモ-274 (ファイルが読み込み・書き込み・実行可能かどうかを判定)
- Goメモ-275 (ファイルが読み込み・書き込み・実行可能かどうかを判定(2))
- Goメモ-276 (TCPで通信するサンプル)
- Goメモ-277 (スライスから配列へ変換する)(Go 1.17以降のやり方)
- Goメモ-278 (GoogleのGoスタイルガイド)
- Goメモ-279 (Functional Option Patternのメモ)
- Goメモ-280 (go vet にシャドウイング検知してくれるshadowを入れて使う)
- Goメモ-281 (net.JoinHostPortを使ってアドレスを作る)
- Goメモ-282 (net.SplitHostPortを使ってアドレスからホストとポートに分割)
- Goメモ-283 (net.LookupPortを使ってサービスに対応するポート番号を取得)
- Goメモ-284 (net.Dialでcontext.Contextを渡してタイムアウト付きで接続する)
- Goメモ-285 (BackLogを指定した状態のnet.Listenerを作る)
- Goメモ-286 (context.WithCancelとtime.AfterFuncでタイムアウト処理)
- Goメモ-287 (goアプリが使っているシステムコールを見てみる (strace))
- Goメモ-288 (goアプリが使っているシステムコールを見てみる2 (バッファリング))
- Goメモ-289 (Go 1.20 リリース)
- Goメモ-290 (ソケットに SO_REUSEPORT を設定してListenerを起動)(net.ListenConfig)
- Goメモ-291 (Excelの特定範囲のRangeを画像にして出力)
- Goメモ-292 (Excelの各シートの内容を画像にして出力)
- Goメモ-293 (errors.Joinで複数のエラーをまとめる)(Go 1.20)
- Goメモ-294 (strings.TrimRight と strings.TrimSuffix のちょっとした違い)
- Goメモ-295 (一つのYAMLファイル内に複数ドキュメントある場合のデコード)
- Goメモ-296 (Go の for range ループのちょっとしたクセ)(イテレーション中の要素増減時の挙動)
- Goメモ-297 (bytesパッケージにCutPrefix,CutSuffixが追加)(Go 1.20)
- Goメモ-298 (Excelの各シートへのリンクをTOCシートとして追加)
- Goメモ-299 (Intel CPUで int を使って 剰余演算 をすると速度が遅くなる??)(reddit)
- Goメモ-300 (バイナリを構造体にパック・アンパック)
- Goメモ-301 (内閣府が提供している国民の祝日CSVファイルで遊ぶ)
- Goメモ-302 (fmt.Errorfで複数のエラーをまとめる)(Go 1.20)
- Goメモ-303 (syscallパッケージはdeprecated扱いだった)
- Goメモ-304 (time.Timeをいろいろなタイムゾーンに変換)
- Goメモ-305 (Go1.20からtime.{DateTime,DateOnly,TimeOnly}が追加された)
- Goメモ-306 (go-packetメモ-01)(ネットワークインターフェースを表示)
- Goメモ-307 (go-packetメモ-02)(流れるパケットをキャプチャする)(OpenLive)
- Goメモ-308 (go-packetメモ-03)(pcapファイルを読み込み)(OpenOffline)
- Goメモ-309 (go-packetメモ-04)(BPFフィルタを設定)(SetBPFFilter)
- Goメモ-310 (go-packetメモ-05)(*pcap.Packetの中身を表示)
- Goメモ-311 (go-packetメモ-06)(*layers.Ethernetの情報を表示)
- Goメモ-312 (go-packetメモ-07)(*layers.ARPの情報を表示)
- Goメモ-313 (go-packetメモ-08)(*layers.ICMPv4の情報を表示)
- Goメモ-314 (go-packetメモ-09)(*layers.IPv4の情報を表示)
- Goメモ-315 (go-packetメモ-10)(*layers.TCPの情報を表示)
- Goメモ-316 (go-packetメモ-11)(*layers.UDPの情報を表示)
- Goメモ-317 (go-packetメモ-12)(アプリケーションレイヤーの情報を表示)
- Goメモ-318 (ファイルを書き込んだ後にSyncしてClose)
- Goメモ-319 (Go 1.21 で slices, maps パッケージが追加される)
- Goメモ-320 (Go 1.21 で clear ビルドイン関数が追加される)
- Goメモ-321 (go-packetメモ-13)(HTTPの情報を表示)
- Goメモ-322 (Goのメモリ管理についての資料)(Go Conference 2023)
- Goメモ-323 (go-packetメモ-14)(DNSの情報を表示)
- Goメモ-324 (go-packetメモ-15)(DNSSECの情報を表示)
- Goメモ-325 (IBM Open Enterprise SDK for Go 1.20)
- Goメモ-326 (バイトスライスを1バイトずつスペースを空けて出力)
- Goメモ-327 (Go でキープアライブプローブを送信する (Windows, Linux, Keep Alive Probe))
- Goメモ-328 (Go 1.22 で予定されているfor-eachループのループ変数に関する挙動変更を試す)(gotip, GOEXPERIMENT, loopvar)
- Goメモ-329 (浮動小数点の計算順序)(Goに限った話ではない)
- Goメモ-330 (新しいKEN_ALL (utf_all.csv) で遊ぶ)
- Goメモ-331 (go install したものを最新にする)
- Goメモ-332 (go-packetメモ-16)(FTPの情報を表示)
- Goメモ-333 (Go 1.21 リリースノート)
- Goメモ-334 (uber-go/nilaway)(nilの可能性をチェックしてくれる静的解析ツール)(うまく動かなかった・・)
- Goメモ-335 (uber-go/nilaway)(nilの可能性をチェックしてくれる静的解析ツール)(動いた)
- Goメモ-336 (append()の特殊な仕様)(append([]byte, string...))
- Goメモ-337 (Go 1.21 リリース)
- Goメモ-338 ([]byteに対して文字列を追加するやり方の速度比較)(fmt.Sprintf, fmt.Appenf, 直接append)
- Goメモ-339 (Gorilla web toolkitがアーカイブ状態から復帰していた)(gorilla/muxとか)
- Goメモ-340 (ExcelのワークブックをPDFにしたい)(excel2pdf)
- Goメモ-341 (WordファイルをPDFにしたい)(word2pdf)
- Goメモ-342 (Go では nil 同士を比較しても同じにならない場合がある)(Nil isn't equal to Nil)
- Goメモ-343 (UTF-8の各文字が何バイトであるのかを判定する)
- Goメモ-344 (CodeSandboxにてGoがサポートされてた)
- Goメモ-345 (Go 1.22で http.ServeMux にパターンマッチング機能が追加される)(gotip, net/http)
- Goメモ-346 (awesome-slog)(slogパッケージのカスタムハンドラへのリンク集)
- Goメモ-347 (plush)(JSPライクな書き方が出来るテンプレートエンジン)
- Goメモ-348 (シングルトンパターン)(design-pattern, singleton)
- Goメモ-349 (math/bigを使って丸め誤差が出ないように計算する)
- Goメモ-350 (github.com/shopspring/decimalを使って計算)
- Goメモ-351 (sync.OnceFunc)(go 1.21から追加)
- Goメモ-352 (sync.OnceValue)(go 1.21から追加)
- Goメモ-353 (sync.OnceValues)(go 1.21から追加)
- Goメモ-354 (Fourteen Years of Go)(Goは14歳になった)
- Goメモ-355 (メソッド値とメソッド式)(method value, method expression)
- Goメモ-356 (Go側からsoファイルを作成してPythonとCで利用)(c-shared)
- Goメモ-357 (Goのプロジェクト構成)(Organizing a Go module, golang-standards)
- Goメモ-358 (fmt.Stringerとfmt.GoStringer)(%v, %+v, %#v, %s)
- Goメモ-359 (翌月の日付を求める)
- Goメモ-360 (月の日数を求める)
- Goメモ-361 (オブジェクトをプーリングして再利用)(sync.Pool)
- Goメモ-362 (文字列とバイト列のクローン)(strings.Clone, bytes.Clone)
- Goメモ-363 (VCSのリビジョン情報をランタイム時に取得)(runtime/debug.BuildInfo, vcs.revision)
- Goメモ-364 (*sql.Rowsから[]map[string]anyに変換)
- Goメモ-365 (gops)(google/gops, Goのプロセスを一覧表示)
- Goメモ-366 (ドットインポート)(dot import)
- Goメモ-367 (Go 1.22: Interactive release notes, リリースノート)
- Goメモ-368 (Go 1.22, Range over integers, for-rangeループの指定に数値が使えるようになる)
- Goメモ-369 (まだリリースされていない最新版の標準ライブラリのドキュメントを見る)(gotip, master)
- Goメモ-370 (Go 1.22 にて reflect.TypeFor が追加)
- Goメモ-371 (Go 1.22 にて slices.Concat が追加)
- Goメモ-372 (INIファイルを操作)(go-ini)
- Goメモ-373 (Go 1.20 から %w を複数指定できるようになってた)(Wrapping multiple errors)
- Goメモ-374 (goimports を全goファイルに実施したい)
- Goメモ-375 (golang.org/x/tools/cmd/deadcodeを使ってデッドコードを調べる)
- Goメモ-376 (JSONのデコード時に不明なフィールドがある場合エラーとする)(DisallowUnknownFields)
- Goメモ-377 (Go 1.22 リリース)
- Goメモ-378 (garble, 難読化ツール)
- Goメモ-379 (otter, ハイパフォーマンスなキャッシュライブラリ)
- Goメモ-380 (構造体をそのままバイナリで出力したい)(binary.Write/Read)
- Goメモ-381 (パスワード付きZIPファイルを作成・解凍)
- Goメモ-382 (C言語のようにバイト配列を構造体にキャスト)
- Goメモ-383 (前後の空白文字をトリミング)(strings.TrimSpace)
- Goメモ-384 (Future/Promiseパターン)
- Goメモ-385 (Gio UI)(Cross-Platform GUI for Go)
- Goメモ-386 (環境変数周りのメモ-1)(os.Environ, 一括取得)
- Goメモ-387 (環境変数周りのメモ-2)(os.GetEnv, 指定した環境変数の値を取得)
- Goメモ-388 (環境変数周りのメモ-3)(os.LookupEnv, 指定された環境変数の値を取得, 存在判定)
- Goメモ-389 (環境変数周りのメモ-4)(os.ExpandEnv, 文字列中の ${var} または $var を置換)
- Goメモ-390 (環境変数周りのメモ-5)(os.Expand, マッピング関数に基づいて文字列の${var}または$varを置換)
- Goメモ-391 (環境変数周りのメモ-6)(os.Setenv, 現在のプロセス内で環境変数を設定)
- Goメモ-392 (環境変数周りのメモ-7)(os.Unsetenv, 現在のプロセス内で特定環境変数のクリア)
- Goメモ-393 (環境変数周りのメモ-8)(os.Clearenv, 現在のプロセス内での全環境変数のクリア)
- Goメモ-394 (flag.FlagSetを使ってサブコマンドを実装)
- Goメモ-395 (Windowsでのcgo呼び出しが速くなる)(don't call lockOSThread for every syscall call on Windows)
- Goメモ-396 (tail -f のような挙動をしたい)(github.com/nxadm/tail)
- Goメモ-397 (現在実行中のプロセスのpidと名前を取得したい)
- Goメモ-398 (On the Go)(Youtubeの公式Go言語チャネルの短い動画集)
- Goメモ-399 (io.MultiWriterで複数の出力を一括で行う)
- Goメモ-400 (Range-Over Functions)(Go 1.22ではまだexperiment扱い, rangefunc)
- Goメモ-401 (ビットフィールドを楽に読み取りたい)(nokute78/go-bit)
- Goメモ-402 (複数のio.Readerを一括で読み込み)(io.MultiReader)
- Goメモ-403 (ミリ秒を表示)(time.Format)
- Goメモ-404 (キャンセル可能なスリープ処理)(time.Sleep, time.Ticker)
- Goメモ-405 (構造体のパディングを可視化)(go-tools/cmd/structlayout)
- Goメモ-406 (最初のゼロ値ではない値を返す)(cmp.Or, go 1.22で追加)
- Goメモ-407 (cmp.Or, cmp.Compareを用いて複合キーのソート処理を実装)
- Goメモ-408 (書式表示で指定ビット桁を表示)(fmt, %0Nb)
- Goメモ-409 (teeコマンドのように読み出しながら別のストリームに書き込む)(io.TeeReader)
- Goメモ-410 (指定したサイズ分だけ読み出す)(io.LimitReader)
- Goメモ-411 (指定した範囲のデータだけ読み出す)(io.SectionReader)
- Goメモ-412 (指定したオフセットから書き込む)(io.OffsetWriter)
- Goメモ-413 (既存関数を置き換え)(go:linkname, コンパイラディレクティブ)
- Goメモ-414 (重複した呼び出しを抑制したい)(x/sync/singleflightパッケージ)
- Goメモ-415 (ヒープメモリの統計情報を取得, runtime/metrics)
- Goメモ-416 (CPUの統計情報を取得, runtime/metrics)
- Goメモ-417 (スケジューラの統計情報を取得, runtime/metrics)
- Goメモ-418 (Goでコンパイルしたバイナリのサイズを分析, go-size-analyzer)
- Goメモ-419 (staticcheckのSA6002について)(sync.Pool, スライス, ポインタ)
- Goメモ-420 (time.ParseDuration)(同じ時間単位は合計される)
- Goメモ-421 (テストで一時ディレクトリを使いたい)(t.TempDir)
- Goメモ-422 (filepath.Walkとfilepath.WalkDirの処理速度の違い)
- Goメモ-423 (spinnerメモ)(01)
- Goメモ-424 (spinnerメモ)(02)
- Goメモ-425 (spinnerメモ)(03)
- Goメモ-426 (spinnerメモ)(04)
- Goメモ-427 (spinnerメモ)(05)
- Goメモ-428 (flaggyメモ)(01)
- Goメモ-429 (flaggyメモ)(02)
- Goメモ-430 (flaggyメモ)(03)
- Goメモ-431 (envメモ)(01.basic)
- Goメモ-432 (envメモ)(02.required)
- Goメモ-433 (envメモ)(03.all-fields-required)
- Goメモ-434 (envメモ)(04.use-fieldname-by-default)
- Goメモ-435 (envメモ)(05.default-value)
- Goメモ-436 (envメモ)(06.value-separator)
- Goメモ-437 (envメモ)(07.expand)
- Goメモ-438 (envメモ)(08.not-empty)
- Goメモ-439 (envメモ)(09.from-file)
- Goメモ-440 (Buffer.AvailableBuffer)(Go 1.21で追加)
- Goメモ-441 (godotenvメモ)(01)
- Goメモ-442 (godotenvメモ)(02)
- Goメモ-443 (godotenvメモ)(03)
- Goメモ-444 (godotenvメモ)(04)
- Goメモ-445 (PDFをページごとに分割)(pdfcpu)
- Goメモ-446 (PDF内から特定のテキストを検索)(ledongthuc/pdf)
- Goメモ-447 (mkfifoメモ)(1)(create)
- Goメモ-448 (mkfifoメモ)(2)(read)
- Goメモ-449 (mkfifoメモ)(3)(write)
- Goメモ-450 (mkfifoメモ)(4)(read-nonblocking)
- Goメモ-451 (mkfifoメモ)(5)(write-nonblocking)
- Goメモ-452 (バージョンごとの新機能)
- Goメモ-453 (Go 1.23 リリース)(参考情報リンク)
- Goメモ-454 (flagパッケージ再入門)(01-FlagSet)
- Goメモ-455 (flagパッケージ再入門)(02-Var)
- Goメモ-456 (flagパッケージ再入門)(03-Duration)
- Goメモ-457 (flagパッケージ再入門)(04-Func)
- Goメモ-458 (flagパッケージ再入門)(05-TextVar)
- Goメモ-459 (flagパッケージ再入門)(06-NArgs)
- Goメモ-460 (flagパッケージ再入門)(07-Subcommand)
golang
lang-spec
mod (go modules)
cgo
concurrent
error-handling
logging
image
file-io
networking
testing
wasm
system_programming
web_programming
misc
database
excel
grpc
gcp
gocv
GoCVは、GoからOpenCV 4 にアクセスすることが出来るライブラリ。利用する場合、OpenCV4のインストールは必須。