1
我讀了reflect document我有點困惑,爲什麼它沒有func (v Value) Slice() slice
函數,它從保存一個片的reflect.Value獲取底層值in。如何通過reflect.Value
有沒有一種方便的方法從reflect.Value獲取底層切片?
我讀了reflect document我有點困惑,爲什麼它沒有func (v Value) Slice() slice
函數,它從保存一個片的reflect.Value獲取底層值in。如何通過reflect.Value
有沒有一種方便的方法從reflect.Value獲取底層切片?
reflect.Value
上沒有Slice()
方法,因爲沒有對所有切片類型有效的返回值。例如,Slice() []int
只適用於int分片,Slice() []string
適用於字符串分片等。Slice() []interface{}
也不適用,due to how the slice is stored in memory。
取而代之,獲取底層切片的功能是reflect.Value.Interface()
方法的一部分。
用法示例:
slice, ok := value.Interface().([]SliceElemType)
if !ok {
panic("value not a []MySliceType")
}
謝謝!正是我想要的。 –