В переключателе типа, если есть случай одного типа, тогда v
относится к этому типу:
switch v:=obj.(type) {
case []int64:
// Here, v is []int64
case []float64:
// here, v is []float64
}
Однако, если существует несколько вариантов или это случай по умолчанию, тогда тип v
- это тип obj
:
switch v:=obj.(type) {
case []int64,[]float64:
// Here, type of v is type of obj
, потому что v
не может иметь определенный тип, если это либо массив int, либо массив float64. Код, сгенерированный для этих двух, будет отличаться.
Вы можете попробовать использовать отражение для go через массив или написать два цикла, один для int и один для float64.