Awesome! Thanks guys!

On 23:13, Fri, 08/05/2015 Kevin Squire <kevin.squ...@gmail.com> wrote:

> You could also just write it using outer constructors.  It is slightly
> more verbose, but cleans up the A type nicely.
>
> type A{T}
>     x::T
> end
>
> function A{T<:Number}(y::T)
>     y < 0 ? A{T}(zero(y)) : A{T}(y)
> end
>
> function A(y::Char)
>     y == 'a' ? A{Char}('b') : A{Char}(y)
> end
>
> julia> A('a')
> A{Char}('b')
>
> julia> A('C')
> A{Char}('C')
>
> julia> A(-100)
> A{Int64}(0)
>
> julia> A(10.4)
> A{Float64}(10.4)
>
> Cheers,
>    Kevin
>
> On Fri, May 8, 2015 at 1:51 AM, Toivo Henningsson <toivo....@gmail.com>
> wrote:
>
>> I think this is fine. You could also have a helper function that does the
>> checking and is called by the inner constructor. If you define it inside
>> the type it will only be accessible to the inner constructor (and other
>> functions within the type).
>
>
>

Reply via email to