On Sun, Jan 28, 2018 at 10:59:58AM -0800, Trig wrote: > This works as intended when you pass it a pointer to a Struct; however, it > should also work (you would think, since the Unmarshaller can handle both > types) a pointer to a *map[string]interface{}; however, it does not. Are > there any future plans to implement this option on both types?
You're talking about [1], are you? If yes, the commit [2] which closed it specifically talks about struct types, so the function behaves as documented. On the other hand, I have two questions to narrow the scope of your claim down. - To carry out its intended task, DisallowUnknownFields() has to operate on a value which it can use to figure out the set of known fields. In the case of a map this suggests that the map passed to that method must be populated with the keys which would define the names of the known fields (and the values assigned to those keys are expected to be overwritten by the decoding process). Is this what you're proposing? - Why a pointer to a map? In my eyes, this suggests that you may legitimately pass a pointer to an unitialized map value and expect the decoder to create one for you; is that correct? If "yes" is the answer to the both points, they cannot be satisfied together: to fulfill the first requirement the map value must be non-nil, and you cannot expect the decoder to initialize it for you. All in all, I suggest you to create a proposal in the issue tracker. Just be sure to be crystal clear, when laying it out -- to save the devs from guessing what you really meant. 1. https://github.com/golang/go/issues/15314 2. https://github.com/golang/go/commit/2596a0c075aeddec571cd658f748ac7a712a2b69 -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.