タグ

ブックマーク / qiita.com/umisama (3)

  • 絶対ハマる、不思議なnil - Qiita

    goのnilは直感的ではない、これは強烈にハマりそう。 型を持つnil nilと一口に書くが、実際には型がある。 nilとnilが等価でないように見える nilが型情報を持つので、nil == nilがtrueになるとは限らない。 trueとなるためには、右辺と左辺の「nil」の型が一致しているという条件が必要。 package main func main() { var x *int32 = nil var y *int64 = nil equals(x, y) return } func equals(x, y interface{}) { println(x == y) }

    絶対ハマる、不思議なnil - Qiita
  • golang 1.4で追加されたtestingの便利機能(テストの初期化とお片づけ) - Qiita

    golangのtestingパッケージはシンプル主義のgoならではといった、最小限の機能のみを提供しています。実際のところこれまでも(ほぼ)充分な機能を提供してきたわけですが、テスト前の初期化を明確に定義できないなど、不満もありました。 そういうわけで、1.4からこの不満を解決するtesting.MとTestMain(*testing.M)が追加されています。これがかなり最高便利です。 従来のテクニック 当然、これまでもテストの"初期化"や"お片づけ"を書きたいという要求は当然ありました。それに対しては、go testコマンドがファイルをabc...順に読みこむことを利用して、ファイル名を工夫するというちょっと裏ワザ的な手法が一般的でした。 すなわち、最初に実行したいテストが書かれたファイルは「a_test.go」にして、最後に実行したいテストを「z_test.go」とするわけです。この方

    golang 1.4で追加されたtestingの便利機能(テストの初期化とお片づけ) - Qiita
  • golangでSQLを叩くライブラリまとめ[基本/クエリビルダ/ORM] - Qiita

    アプリケーションを作る上でデータベースを避けて通ることはできません。その中で最もポピュラーでパワフル(かつ普及している)のはSQLでしょう。 golangでも快適にSQLを操作したい。 このエントリでやること golangSQLを操作する方法を、「基(databse/sql)」から、SQLクエリを自動生成する「クエリジェネレータ」、最後に「ORM」という順序で解説します。 ライブラリの特徴などをいくつか抑えていくだけであって、網羅的ではない。雰囲気だけ。 操作方法 基(database/sql) 標準ライブラリだけを使って頑張る。基的にSQLを手書きして、変数とのマッピングも手で当てることになる。 sql.(*DB).Exec()を使うと、SQLクエリをそのまま叩ける。プリペアドステートメントはクエリのあとにガシガシ置いていくカンジ。 db, err := sql.Open("sq

    golangでSQLを叩くライブラリまとめ[基本/クエリビルダ/ORM] - Qiita
  • 1