Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typ := &TYP{InternalState: "filled"}
- setNil(typ)
- fmt.Printf("Expecting that %v to be nil", typ)
- func setNilIf(v *interface{}) {
- *v = nil
- }
- var i interface{} = "Bob"
- fmt.Printf("Before: %vn", i)
- setNilIf(&i)
- fmt.Printf("After: %vn", i)
- Before: Bob
- After: <nil>
- func setNilPtr(p unsafe.Pointer) {
- *(**int)(p) = nil
- }
- typ := &TYP{InternalState: "filled"}
- fmt.Printf("Before: %vn", typ)
- setNilPtr(unsafe.Pointer(&typ))
- fmt.Printf("After: %vn", typ)
- Before: &{filled}
- After: <nil>
- func setNilPtr2(i interface{}) {
- v := reflect.ValueOf(i)
- v.Elem().Set(reflect.Zero(v.Elem().Type()))
- }
- typ2 := &TYP{InternalState: "filled"}
- fmt.Printf("Before: %vn", typ2)
- setNilPtr2(&typ2)
- fmt.Printf("After: %vn", typ2)
- Before: &{filled}
- After: <nil>
- i = nil
- typ = nil
Add Comment
Please, Sign In to add comment