kakts-log

programming について調べたことを整理していきます

Go

google/wireでDIする際のgenerics対応について

Go

概要 この記事はQiita Advent Calendar 2023 Go言語の第十七日の記事です。 qiita.com google/wire で genericsに対応させる方法をまとめる google/wireについて github.com google/wireとは、GoでのDependency Injection用のコード生成ツールとなります。 w…

Golangでファイル監視を行う

Go

概要 Goでファイル監視の方法についての記事です。 Goの標準パッケージではファイル監視の機能は提供されていないが、 github.com/fsnotify/fsnotify を使ったファイル監視のやり方をまとめます。 fsnotifyについて github.com/fsnotify/fsnotify 各プラット…

vscode: Goのコードで定義元にジャンプさせる

Go

概要 vscodeでGoのコードを書く際に、関数などの定義元にジャンプさせたい時の設定。 手順 Go公式のvscode拡張機能を有効にする まず、Go公式のvscode拡張機能が有効になっているか確認します。 github.com Goの公式の拡張機能が有効になっているか確認する …

Go revelでのmongoDBとのコネクション、CRUD処理についてのメモ

概要 Go revelというwebフレームワークで個人のwebアプリを作っている最中にハマった箇所のメモ。 mgoというGoのmongoドライバを使って、mongoDBとのコネクションを保持させ、CRUD処理を1ファイルにまとめて 他のcontroller層から呼び出して使いたかったので…

Golang listパッケージを使ったdoubly linked listの操作

go

Golang listという標準パッケージを使ってdoubly linked listの操作を簡単に行えるので、まとめます。 list - The Go Programming Language 使い方 listパッケージを使うためには、公式ドキュメントにある通り、"container/list"をインポートします。 list.N…

Goのスライスについて

Goのスライスについて Go Slices: usage and internals - The Go Blog Go言語において固定長のサイズの配列とは別に、要素の追加に応じて自由にサイズを拡張できるスライスという型があります。 スライスのデータ構造 スライスのデータ構造としては、ソース…

Go deferについて

Goには、deferステートメントというものがあり、deferへ渡した関数実行を、その呼び出し元の関数の終了時(return)まで遅延させることができます。 package main import "fmt" func main() { // main関数の最後に実行される defer fmt.Println("world.") fmt.…

Go 変数宣言についてのまとめ

仕事で Goを使う機会があったので、基本から勉強していて、変数宣言について気になった点についてメモがてらまとめます。 Golangにおける変数宣言において、 varをつかって変数宣言をするのが一般的 package main import ( "fmt" ) func main() { // int型で…