不動産ジャパンは、 お客様に信頼される不動産業の健全な発展を目指す 公益財団法人不動産流通推進センターが運営しています。
Goに限らないトピックかもしれません。 次のような、データベースからデータを読み込む関数(インライン展開されない)を利用する関数があったとします。返されたオブジェクトの生存期間はこの関数内のみとします。 func doSomething() { // getUser()はDBから読み込んで結果を返す関数 user, err := getUser() } この時、getUser()の実装パターンとして、値返しのパターンとポインタ返しの2パターンが考えられます。 ポインタ返しの場合 構造体のコピーは発生しませんが、doSomething()を大量に呼ぶとGC対象オブジェクトがヒープにたまる。 値返しの場合 ヒープにオブジェクトは作成しないが、構造体のコピーが発生するのでポインタ返しより実行がやや遅い? Goの場合、この使い分けはどこで判断するのがよいでしょうか?
hub-pr を作るとき、(ghq などで使っていた)codegangsta/cli ではなく新しいライブラリを試してみようと思って mitchellh/cli を使ってみたけど、何かしっくりこないものがあったので、せっかくだし、と自作してみた。今回の要件は以下のとおり。 (go や git のように)サブコマンドがある コマンドラインオプションの解析には標準の flag パッケージをつかう コマンドを追加するのが面倒でない で、go-cli(ドキュメント)。 コマンドの実装 hub-pr のソースコードが一番のサンプルだけど、コマンドは以下のような関数で表現される。 func doCheckout(flags *flag.FlagSet, args []string) error { 各コマンドの実装は初期化された *flag.FlagSet とコマンドの引数(プログラムの第1引数がコマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く