參數化回傳值
一般我們會在函式的引數上加上參數,這樣可以讓函式去推論引數的型別,這樣有多種用途,其中之一當然是增進效能。
1 | julia> foo(a::T) where {T} = zero(T) |
那我們有沒有辦法對回傳值的型別做參數化呢?
有的,可以這樣做。
1 | julia> (foo(a::T)::T) where {T} = zero(T) |
一般要標記回傳值的型別,要寫在整個 function signature 的後面,也就是
1 | foo(a)::Int |
如果要將他標記為參數,那就需要寫成
1 | (foo(a)::T) where {T} |
這樣就寫出來啦!!