Go
Go の module cache と vendor の違いがよく分からなかったので調べた。結論としては、違いというか go.mod に記述されているバージョンによってデフォルトで module cache と vendor のどちらを go run や go build 時に使うかが異なる。 環境 Go 1.15.3 $G…
Go 言語を勉強していて reflection って何なんだろ、となったので調べた内容を書いておく。 そもそも reflection とは何なのか 自己書き換えコード reflection はメタプログラミング メタプログラミング なぜメタプログラミングしたいのか 実行時にしか分か…
Go の型システムについて、今理解していることを書く。もしかしたら間違っているかもしれない。 Go の型システム 型同士に階層がない(サブタイプ・スーパタイプのような関係がない) 型は名前によって区別される。階層がないので、ある型が要求された場合に…
環境 macOS 10.14.6 VSCode 1.44.2 ゴール 高速な補完、フォーマット、シンタックスハイライトが VSCode で動作する vim-go の :GoImport のようにモジュールを選択して import できる VSCode でデバッグできる(標準入力を伴う場合は入力した上でデバッグし…
環境 モチベーション どうやったか できたもの 手順 Heroku addonsのPostgresについて Dataclips pgsql Dockerを利用したHeroku デプロイについて その他 環境 mac OS 10.14.6 Go 1.12.4 モチベーション データのCRUDを伴うWebAPI(とDB)をサクッと作って公開…
環境 macOS 10.14.6 go 1.12 urfave / cli v2.1.0 作ったもの github.com 何だこれは 苺ましまろという作品に登場するキャラクターの台詞を出力するだけのアプリ。 台詞は3パターンしか登録していない。アナちゃんと茉莉ちゃんは未対応。 モチベーション 久…
環境 VS Code バージョン1.36.1 (1.36.1) go version go1.12.4 darwin/amd64 事象 vscode-goにはワークスペースやユーザ毎に$GOPATHを推測するgo.inferGopathというオプションがあり、自分は常に有効化している(VSCodeでGoのデバッグにも以前に書いた) go.…
環境 httptest.Serverとhttptest.ResponseRecorder httptest.Server httptest.NewRecorder 関連:NewRecorderを利用する場合にserveHTTPを使用する必要があるのか 参考 環境 go1.12.4 darwin/amd64 httptest.Serverとhttptest.ResponseRecorder ServerとResp…
今更感はあるがVSCodeでGoのソースコードをデバッグしてみたので記録。 環境 delveインストール VSCodeにテスト対象の$GOPATHを認識させる launch.jsonを作る デバッグする まとめ 環境 macOS 10.14.4 go1.12.4 darwin/amd64 VSCode バージョン1.32.1 vscode…
環境 go1.12.4 darwin/amd64 インターフェイス型の型アサーション Goでは、以下のようにインターフェイスのエイリアスであるStatement型の変数から実際の型であるExpressionStatementを型アサーション.(T)によって取り出すことができる。 package main impor…