internal/lib/reflect: Value.SetZero

This commit is contained in:
visualfc
2024-11-14 10:25:23 +08:00
parent 15a6c779b8
commit 792716eefc

View File

@@ -908,7 +908,6 @@ func (v Value) IsZero() bool {
// SetZero sets v to be the zero value of v's type. // SetZero sets v to be the zero value of v's type.
// It panics if CanSet returns false. // It panics if CanSet returns false.
func (v Value) SetZero() { func (v Value) SetZero() {
/*
v.mustBeAssignable() v.mustBeAssignable()
switch v.kind() { switch v.kind() {
case Bool: case Bool:
@@ -946,7 +945,7 @@ func (v Value) SetZero() {
case String: case String:
*(*string)(v.ptr) = "" *(*string)(v.ptr) = ""
case Slice: case Slice:
*(*unsafeheader.Slice)(v.ptr) = unsafeheader.Slice{} *(*unsafeheaderSlice)(v.ptr) = unsafeheaderSlice{}
case Interface: case Interface:
*(*[2]unsafe.Pointer)(v.ptr) = [2]unsafe.Pointer{} *(*[2]unsafe.Pointer)(v.ptr) = [2]unsafe.Pointer{}
case Chan, Func, Map, Pointer, UnsafePointer: case Chan, Func, Map, Pointer, UnsafePointer:
@@ -958,8 +957,6 @@ func (v Value) SetZero() {
// as a default value doesn't makes sense here. // as a default value doesn't makes sense here.
panic(&ValueError{"reflect.Value.SetZero", v.Kind()}) panic(&ValueError{"reflect.Value.SetZero", v.Kind()})
} }
*/
panic("todo: reflect.Value.SetZero")
} }
// Kind returns v's Kind. // Kind returns v's Kind.