Yes, I guess.

call(TT, 1, 2)

call(TT, 'a', 'b')




On Tuesday, April 5, 2016 at 4:19:05 PM UTC+2, FANG Colin wrote:
>
> methods(TT)
>
>  call(::Type{TT}, x::Float64, y::Float64) at In[22]:2
>  call(::Type{TT}, x, y) at In[22]:2                  
>  call{T}(::Type{T}, arg) at essentials.jl:56         
>  call{T}(::Type{T}, args...) at essentials.jl:57    
>
>
> So I guess the rule is applied in  call(::Type{TT}, x, y)
>
> What does it do? Does it try to convert(Float64, x) & convert(Float64, y)? 
> I.e does it always try to convert each argument to the type of the field 
> defined in the type?
>
> On 5 April 2016 at 15:11, Yichao Yu <yyc...@gmail.com <javascript:>> 
> wrote:
>
>> On Tue, Apr 5, 2016 at 10:09 AM, FANG Colin <coli...@gmail.com 
>> <javascript:>> wrote:
>> > Sorry if this has been discussed somewhere as I am unable to find the
>> > relative post.
>> >
>> > immutable TT
>> >     x::Float64
>> >     y::Float64
>> > end
>> >
>> > function tt(x::Float64, y::Float64)
>> >     x + y
>> >
>> > end
>> > tt(1,2) # doesn't work
>> > TT(1,2) # works
>>
>> There are automatic constructors defined with conversion not promotion.
>> See `methods(TT)`
>>
>> >
>> > What rule applies here for TT(1,2)?
>>
>
>

Reply via email to