SECTION-073 リスト18.14のinterface{}ってanyとどう使い分けているのでしょうか? #72
-
次の部分を見ると、destのような書き換えるものはanyは使わない習慣があるのかなとも思ったのですが、 anyはinterface{}のエイリアスだと認識しているので、何かしら使い分けの習慣があるのかと思ったのですが、どうでしょうか? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
ご質問ありがとうございます。鋭い指摘ですね…!
(といいつつ今見るとsqlxにしかないQueryxContextでも |
Beta Was this translation helpful? Give feedback.
ご質問ありがとうございます。鋭い指摘ですね…!
repository.go
のany
とinterface{}
の使い分けは標準パッケージ由来のシグネチャか、github.com/jmoiron/sqlx
パッケージ由来のシグネチャかによって変わっています。他のシーンでも適用できる一般化できるルールに則っているわけではなかったりします。
ExecContext
などは標準パッケージの定義なのでany対応されてシグネチャが宣言されています。https://pkg.go.dev/database/sql#DB.ExecContext
対して、
SelectContext
などのsqlx特有のものは大元がinterface{}
のままなのでsqlxに合わせてinterface{}
にしてあるといった感じです。https://pkg.go.dev/github.com/jmoiron/sqlx#DB.SelectContext
(といいつつ今見るとsqlxにしかないQueryxContextでも
any
になっていたりしますね 🙇