Okay well the actual (working version) of the code (before I wrote the test 
cases that are currently failing/not compiling) is here (I refuse to check 
in broken code):
https://github.com/cbehopkins/permutation/blob/master/helpers.go

The source library (permutation) can cope with permutes on arrays of 
arbitrary type as long as you supply a Less function. I'm trying to extend 
the test cases so anything other than int type is tested.
I've long preached that is you're using reflect you're probably doing it. I 
know the source library uses reflect for these things, I'm trying to avoid 
it.

I just can't see a different way to do it.

Thanks
Chris

On Wednesday, 31 January 2018 17:46:51 UTC, Axel Wagner wrote:
>
> FTR, you can also pass an actual []Usable, instead of a []tmpType. That is 
> do
> https://play.golang.org/p/N_CJh0Ekik8
> But I do think that your code and question suggest that you are trying to 
> use interfaces to do some sort of subtyping, which is just not how they are 
> supposed to be used.
>
> On Wed, Jan 31, 2018 at 6:43 PM, Axel Wagner <axel.wa...@googlemail.com 
> <javascript:>> wrote:
>
>> You have to use reflection for that. Go doesn't have subtyping of that 
>> kind. This smells a bit of an xy-problem <http://xyproblem.info/> to me, 
>> though. There are several things here, that suggest an antipattern going 
>> on. With a little bit of context on the actual problem you are trying to 
>> solve, we might be able to come up with a more idiomatic design.
>>
>> On Wed, Jan 31, 2018 at 6:37 PM, Chris Hopkins <cbeho...@gmail.com 
>> <javascript:>> wrote:
>>
>>> Hi
>>> Sharing my ignorance:
>>> I didn't realise that although you can switch-case on an interface, an 
>>> array of interfaces doesn't work.
>>> https://play.golang.org/p/tD8msjCXyuZ
>>>
>>> Any ideas on how to cope with this? I tried:
>>> _, ok = tmp.([]Useable)
>>>
>>> But that fails for the same reason. I can't work out how to detect if 
>>> the type (of the empty interface) is an array of a type that satisfies the 
>>> (useful) interface.
>>> This must be a common problem and PEBKAC surely?
>>>
>>> Regards
>>>
>>> Chris
>>>
>>> -- 
>>> 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...@googlegroups.com <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>

-- 
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.

Reply via email to