splat 演算子を使用するときに、引数の型にどのように注釈を付けることができますか?
f(x, y) = x^2 + y^2
vec = [1.0, 2.0, 'a']
f(vec[1:2]...)
...
関数呼び出しでその使用に注釈を付けるにはどうすればよいですか。また、コードを表示するマクロ ( @code_llvm
、@code_lowered
、@code_native
、) が機能しないことに注意してください。@code_typed
@code_warntype
上記の使用例では、リフレクション関数のマクロ バージョンが正しい引数の型に到達できなかったように思われるため、マクロの代わりに元の関数を使用すると役立つ場合があります。
f(x, y) = x^2 + y^2
vec = [1.0, 2.0, 'a']
@code_warntype(f(vec[1:2]...)) # => Nothing
code_warntype(f,map(typeof,vec[1:2]))
# Variables:
# x::Float64
# y::Float64
# .....
このロジックは、バリアント関数と(function, collection of types)
.
参照: