int
(任意の型の)を期待int/int8/16/32/64
し、型スイッチを使用してそれをチェックする状況がよくあります。
switch t := v.(type) {
case int, int8, int16, int32, int64:
// cast to int64
case uint, uint8, uint16, uint32, uint64:
// cast to uint64
}
t
この場合は型になるため、今は直接キャストを使用できませんinterface{}
。case
整数型ごとにこれを s に分割する必要がありますか?
を使用してリフレクションを介して実行できることはわかっていますが、これを行うためreflect.ValueOf(v).Int()
のより良い(冗長でない)方法はありませんか?
アップデート:
問題を提出し、Robreflect
はこの場合にのみ使用することを勧めました。