はい!今やってます!

Work Pertly, Live Idly

Go

無名関数の中でdeferを呼んだ時の動作の検証

Code package main import ( "fmt" "errors" ) func main() { fmt.Println("---- main start ----") var err error defer func() { fmt.Println("---- main defer start ----") if err != nil { fmt.Println("--> err in main defer") fmt.Println(err) } fm…

GoでMarkdown内の画像コンテンツを正規表現でマッチさせる

// Match image file path r := regexp.MustCompile(`\!\[.+?\]\(([^\s\)]+).*\)`) match := r.FindAllStringSubmatch(content, -1) // Image Tag Pattern // ![foo](/image/hoge/fuga.jpg) // ![foo](/image/hoge/fuga.jpg "画像タイトル") // [![foo](/ima…

ginでcontextからHeaderの情報を取得する方法

ginでcontextからHeader情報を取得したいときは key := c.Request.Header.Get("key") こんな感じで取得可能。 以上

logrusでログの行数とファイル名を出力したい

logrusを利用していて、ファイル名(filename)や行数(line number)を出力したくなったときは、 SetReportCaller(true) という感じのメソッドを呼んでやればよい package main import ( log "github.com/sirupsen/logrus" ) func main() { log.SetReportCaller…

Macのローカル環境にVisual Studio CodeでGoの開発環境を構築する

phpやhack、go、ruby on rails等ちょくちょく触れる機会があるのですが、 Java出身者としては、eclipseで得たユーザー体験が忘れられず、 goの開発環境を真面目に作ってみることにしました。 各バージョンについて Mac : OSX(10.11.6 ElCapitan) Go : go1.8 …

MacでローカルにgvmでGoをインストールするとエラー

バージョン一覧 gvm version Go Version Manager v1.0.22 installed at /Users/uedayuji/.gvm clang --version Apple LLVM version 7.3.0 (clang-703.0.31) Target: x86_64-apple-darwin15.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/C…

n+1問題用スニペット

for文の中でSQLを回してしまう事でアプリのパフォーマンスを落としてしまうn+1問題と呼ばれる処理。 解決するためにはデータをチャンクして処理する必要がある。あまり上手く書いてるコードと出会った事が無くて苦手意識があったのだけど、今日シンプルなの…