Hi Rog,

Please inline comments.

Thx


On Thursday, July 20, 2017 at 1:58:09 PM UTC+2, rog wrote:
>
> I'm not convinced that holding all your values in a uniform way
> is going to be that helpful for you. You might be better using reflection
> to map the columns into a struct type (there's probably a package
> out there already that can do that).
>
> However, to answer without questioning the whole premise:
>
> You can't pass a function on a specific type to the more generally
> typed func(Valuer)Valuer because the value in the column might not
> be of the specific type - what should happen if the column is a string
> and you pass func(CSVFloat)CSVFloat to Apply?
>

Couldn't do checking with for instance reflection?
 

>
> Here's your code made to work, with some arguably redundant stuff
> removed. The Transformer type seemed unnecessary, as Apply
> and RemoveColumn both work with the row in place. The Type field
> in the Column struct seemed unnecessary, as the type is implied by
> the value in the column. Also, the whole notion of Type seemed
> a bit redundant as CSV files have no notion of type, and it seems like
> you want to support custom types. The CSV prefix on the type names
> seemed unnecessary, as this would probably be in a package with
> some kind of csv-related name.
>

Is it possible to solve the problem without using type assertion?
 

>
> https://play.golang.org/p/9mSfG1m4VZ
>
>   cheers,
>     rog.
>
> On 20 July 2017 at 08:05, Sofiane Cherchalli <sofi...@gmail.com 
> <javascript:>> wrote:
>
>> Hi Silviu,
>>
>> Thanks for the reply.
>>
>> Basically I want to kinda functional map on my custom types by applying 
>> functions on base value or struct values.
>>
>> What if I want to for instance:
>>
>> - Multiply the float64 value inside CSVFloat by 2 ?
>> - or Replace a custom type value with another one from the same type?
>>
>> Thanks
>>
>>
>> On Thursday, July 20, 2017 at 5:09:40 AM UTC+2, Silviu Capota Mera wrote:
>>>
>>> Before: myfn := func(v CSVFloat) CSVFloat { return v }
>>>
>>> After: myfn := func(v Valuer) Valuer { return v }
>>>
>>> On Wednesday, 19 July 2017 16:48:07 UTC-4, Sofiane Cherchalli wrote:
>>>>
>>>> Hi!
>>>>
>>>> I'm a noob in Go and I need some guidance/help on this: 
>>>> https://play.golang.org/p/0TGzKiYQZn
>>>>
>>>> Basically I'm implementing a CSV parser, and applying transformations 
>>>> on column value.
>>>>
>>>> In last part of the code I'm trying to apply a function on CSVFloat 
>>>> type which satisfies Valuer interface, but I got a compiler error.
>>>>
>>>> In Scala language, this could be done by using map function, but how to 
>>>> do it in Golang?
>>>>
>>>> Thanks.
>>>>
>>> -- 
>> 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