地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

Go

【Go】Go言語のcontextの理解メモ

Go

contextの主な用途は2つ Goroutineの適切なキャンセル リクエスト情報の伝搬 1つめはコンテキスト使わなくても実装可能だが2つめがちょっと難しい。そもそもコンテキスト型とは以下のように定義されている。 type Context interface { // Deadlineが設定され…

【Go】for selectパターンメモ

Go

チャネルからの受信を待つパターンでの実装。書き込めるチャネルをselectして実行みたいなのも可能。 package main import ( "fmt" "strconv" "time" ) type Result struct { Error error Response int } func doSomething(done <-chan interface{}, printSt…

【Go】fsnotifyを使ってみる

Go

github.com fsnotifyを使って特定ディレクトリ配下のファイルを監視して起きたイベントをコンソールに出力するCLIツールを作ってみた。 仕組みとしては linuxjm.osdn.jp アプリケーションで inotify ファイルディスクリプターを read(2) してそのイベントをO…

【Go】defer

Go

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

【Go】GitHubActions GoのCIテンプレート

build -> test -> lintをするためのgo用のテンプレートyaml lintは以下を使ってます。 github.com jobs: setup: runs-on: ubuntu-latest steps: - name: set up uses: actions/setup-go@v2 with: go-version: ^1.13 id: go - name: check out uses: actions/…

カテゴリ用記事

カテゴリ用