Golangのメソッドチェーンが長くなってしまう問題

gormなど、メソッドチェーンを多用できるライブラリを使っている時に、 どうしても一行が長くなってしまう問題がある。

実際のコード:

if err := db.Model(&User{}).Where(&User{Name: "hogehoge"}).Count(&cnt).Error; err != nil {
  panic(err)
}

本当はこう書きたい:

if err := db.Model(&User{})
    .Where(&User{Name: "hogehoge"})
    .Count(&cnt)
    .Error; err != nil {
  panic(err)
}

折角メソッドチェーンでシンプルにかけるようになっているのに勿体無い…。

少し調べてみたが、今のところ一時変数を使った解決策しか無いようだ。

c := db.Model(&User{})
c = c.Where(&User{Name: "hogehoge"})
c = c.Count(&cnt)
if c.Error != nil {
     panic(c.Error)
}