タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

golangとprogrammingとtipsに関するa2ikmのブックマーク (4)

  • Go 1.13 にアップデートするとテスト時に "flag provided but not defined" エラーが発生するケース - blog.syfm

    Go でテストを実行する際は動的に生成された main 関数がエントリポイントとなっています。 Go 1.13 からはテスト実行時のテストフラグ (-v や -coverprofile など) の登録がこの生成された main 内で行われるようになったため、 main より先に実行される init 内でフラグの登録を行っているテストではフラグのパースがうまく動かず、テストが落ちるようになります。 たとえば、自分が開発している Evans では golden files testing のために --update フラグを e2e パッケージで用意し、これが有効になっている場合のみ golden files を更新するような設定になっていました。 var ( update = flag.Bool("update", false, "update goldens") ) func init()

    Go 1.13 にアップデートするとテスト時に "flag provided but not defined" エラーが発生するケース - blog.syfm
  • golangでBCEを意識してスライスへのアクセスを速くする - Qiita

    スライスの比較の記事を読んでいて、ほーと思ったのでメモ。 BCEで最適化されるとスライスへのアクセスが少し速くなるよ、という話。 参考 ここに書いてあることを要約して書いただけなので元記事読んだほうが良い説があります Slice Comparison in Golang - Tapir Games はじめに 2つのスライスの比較として、以下の3つの関数を考えます。 1つはDeepEqualを使った場合で、あとの2つは自作した関数です。 func CompareSlices_Reflect(a, b []int) bool { return reflect.DeepEqual(a, b) } func CompareSlices_General(a, b []int) bool { if len(a) != len(b) { return false } if (a == nil) != (

    golangでBCEを意識してスライスへのアクセスを速くする - Qiita
  • Big Sky :: golang では変数の宣言位置が大事

    今日こんなツイートをした。 @mattn_jp よろしければベターな理由をm(_ _)m 名前空間を短くする作法なのはわかるのですがメモリやGCやコンパイラなど、どの辺に優しい感じですか? — Ryuji IWATA (@qt_luigi) April 5, 2017 qt_luigi さんからどうしてかを聞かれたので説明したいと思います。 golang では宣言した位置で初めて自動変数としてメモリが確保され、ゼロクリアされます。 for i := 0; i < b.N; i++ { var foo Foo bar, err := doSomething() if err != nil { continue } foo.v = bar fmt.Fprintln(ioutil.Discard, foo) } なので例えばこの様なコードで doSomething() が err を返した場合、

    Big Sky :: golang では変数の宣言位置が大事
  • Go言語でテストしやすいコマンドラインツールをつくる

    記事はGo Advent Calendar 2014の18日目の記事です. Go言語は,クロスコンパイルや配布のしやすさからコマンドラインツールの作成に採用されることが多い.自分もGo言語でいくつかのコマンドラインツールを作成してきた.例えば,GitHub Releaseへのツールのアップロードを簡単に行うghrというコマンドラインツールを開発をしている. コマンドラインツールをつくるときもテストは重要である.Go言語では標準テストパッケージだけで十分なテストを書くことができる.しかし,コマンドラインツールは標準出力や標準入力といったI/O処理が多く発生する.そのテスト,例えばある引数を受けたらこの出力を返し,この終了ステータスで終了するといったテストは,ちゃんとした手法が確立されているわけではなく,迷うことが多い(少なくとも自分は結構悩んだ). 記事では,いくつかのOSSツール(得に

  • 1