I want to make a parametric type that needs some checking, so I want to 
include an inner constructor. But since the type of the arguments can 
change, then the method of checking (the validity of the arguments) needs 
to depend on the type. I know the following works, but thought it would be 
good to ask if this is bad practice in any way:

type A{T}
x::T

function A(y::Number)
y < 0 ? new(zero(y)) : new(y)
end

function A(y::Char)
y == 'a' ? new('b') : new(y)
end
end
A{T}(x::T) = A{T}(x)

In reality I'll have about four different types that A's argument can have 
and therefore four different inner constructor methods... 

Thanks!

Reply via email to