如何指定函数类型的参数类型
How to specify the argument types of function types
Julia 有没有办法限制函数类型的参数类型?假设我有一个函数 f = p::Int -> sqrt(p)
,我需要将这个函数传递给其他函数,有没有办法指定这些其他函数接受本身接受 Int
的函数,比如 [=13] =].
我正在研究光线行进实现,它使用函数对几何进行编码。要组合两个几何对象,我需要取它们各自函数的最小值。现在,我有这个
Base.union(f1::Function, f2::Function) = p::Vec -> min(f1(p), f2(p))
但是使用@code_warntype,我发现有时它是类型稳定的,而有时则不是。我认为指定参数函数的参数类型可能对此有所帮助。
相关问题:使用@code_warntype 时,#num 是什么意思,例如 var"#226#227"{var"#223#224"{Torus}, var"#219#220"{Sphere}}
?
简短回答:不,Julia 没有类型化函数。但是您可以在没有此功能的情况下实现类型稳定性。
#num
只是给 un-named 变量的名称。
Julia 有没有办法限制函数类型的参数类型?假设我有一个函数 f = p::Int -> sqrt(p)
,我需要将这个函数传递给其他函数,有没有办法指定这些其他函数接受本身接受 Int
的函数,比如 [=13] =].
我正在研究光线行进实现,它使用函数对几何进行编码。要组合两个几何对象,我需要取它们各自函数的最小值。现在,我有这个
Base.union(f1::Function, f2::Function) = p::Vec -> min(f1(p), f2(p))
但是使用@code_warntype,我发现有时它是类型稳定的,而有时则不是。我认为指定参数函数的参数类型可能对此有所帮助。
相关问题:使用@code_warntype 时,#num 是什么意思,例如 var"#226#227"{var"#223#224"{Torus}, var"#219#220"{Sphere}}
?
简短回答:不,Julia 没有类型化函数。但是您可以在没有此功能的情况下实现类型稳定性。
#num
只是给 un-named 变量的名称。