を返す関数があるとしましょうinterface{}
。しかし、アイテムの返品はある種のスライスであることは知っています. そのスライスの長さをどのように決定できますか? これが私が試したサンプルコードですが、それらはすべてコンパイルエラーを引き起こします。
package main
import (
"log"
"reflect"
)
func SomeKindOfSlice() interface{} {
return []int64{0,1,2,3,4,5,6,7,8,9}
}
func main() {
slice := SomeKindOfSlice()
/*log.Println(reflect.TypeOf(slice).Len())
log.Println(reflect.TypeOf(slice).Type().Len())
log.Println(reflect.ValueOf(slice).Type().Len())
log.Println(reflect.ValueOf(slice).Elem().Type().Len())
*/
log.Println(reflect.ValueOf(slice).Elem().Type().Len())
}
slice
長さを見つけるためだけに変数を具体的に型アサートする強引な方法を避けたいと思います。