# simple value - [x] int - [x] int8 - [x] int16 - [x] int32 - [x] int64 - [x] uint - [x] uint8 - [x] uint16 - [x] uint32 - [x] uint64 - [x] float32 - [x] float64 - [x] string - [x] bool # one level - [x] slice + int - [x] array + int - [x] map + (string, int) - [x] struct + * # two levels - [x] slice + array - [x] slice + map - [x] slice + slice - [x] slice + struct - [x] array + array - [x] array + map - [x] array + slice - [x] array + struct - [ ] map + array - [ ] map + map - [ ] map + slice - [ ] map + struct - [ ] struct + (array, map, slice, struct) # existing value - [ ] slice + int - [ ] array + int - [ ] map + (string, int) - [ ] struct # new value # nil - [ ] ptr int - [ ] ptr ptr int - [ ] slice int - [ ] slice ptr int - [ ] array - [ ] map - [ ] struct # empty interface # field tag - [ ] rename # extra - [ ] struct - [ ] [2]int # invalid - [ ] int - [ ] int via interface{}
simple value
one level
two levels
existing value
new value
nil
empty interface
field tag
extra
invalid