小编Imp*_*p54的帖子

julia:关于函数中泛型类型的几个问题

我正在向某些函数添加类型,即为了速度和清晰度。我对此有几个问题。我在这里问他们所有人,因为我看过其他帖子这样做。问题以粗体显示,以便于识别。

\n

我想向一个函数添加类型,用于计算向量中负值的数量。我想让它与 Int 和 Float 兼容,就像非类型化函数一样。虽然方便,但 Chris Rackauckas 建议不要这样做,请参阅如何声明可以具有 int 和 float 的数组类型的第一条评论,

\n
\n

您想同时使用整数和浮点数吗?由于性能原因,不建议这样做。但如果您愿意,可以使用 Union{Int64,Float64} 作为类型。

\n
\n

如果由于某种原因需要多态函数,那么更好的方法似乎是通过Union. 然而,对于这种特殊情况,由于Number和是和Real的超类型,我认为它们会比非类型化版本稍快一些。Int64Float64

\n

然而,至少在我的简单测试中,情况似乎并非如此。我测试了一个没有参数类型的函数,另一个带有Any,以及两个带有类型Number和 的函数Real,两者都是Float64和的超类型Int64

\n
notypes\nmedian time:      1.006 ms (0.00% GC)\nmean time:        1.152 ms (12.60% GC)\n\nany\nmedian time:      1.054 ms (0.00% GC)\nmean time:        1.197 ms (12.05% GC)\n\nunion\nmedian time:      1.062 ms (0.00% GC)\nmean time:        1.210 ms (12.09% GC)\n\nnumber\nmedian time:      1.110 …
Run Code Online (Sandbox Code Playgroud)

performance types julia

4
推荐指数
1
解决办法
365
查看次数

标签 统计

julia ×1

performance ×1

types ×1