Tuesday, 29 October 2019

golang test

InteliJ から golang のテストを書くんですが、なんか、構造体の配列を作ってループするみたいな感じのコードが生成されるんですが、

 配列の書き方が良くわからん

結局、

  type args struct {
    u fileIO.FileIO
  }
  u1 := fileIO.FileIO{}
  var tests = []struct {
   name string
        args args
   }{
     {"test",args{u1}},
  }

で、通ったのですが、いろいろ納得いかん。最後の「,」はなんだよ。これがないと

  main_test.go:18:20: missing ',' before newline in composite literal

ううーん。あと、

  args{u1}},

これ。単に u1 とか{u1}だと通らない。

  {"test",u1},
  main_test.go:18:11: cannot use u1 (type fileIO.FileIO) as type args in field value
  {"test",{u1}},
  main_test.go:18:11: missing type in composite literal

いや、まぁ、気持ちはわからなくもない。{} だと anonymous type になるってことでしょ。でも、それくらい推論できるだろ? しない理由あるのか?

No comments: