小编The*_*rer的帖子

Julia中抽象类型数组的用法

我在探索朱莉娅,所以我是新手.现在我正在探索其强类型功能.我意识到的是我无法看到数组的抽象类型的用法.让我用一个例子来解释一下:

让我们假设我想创建一个接受实数数组的函数,无论其具体类型如何.我会用:

function f(x::Array{Real})
  # do something
end
Run Code Online (Sandbox Code Playgroud)

如果不提高a,就不能调用此函数 f has no method matching f(::Array{Float64,1})

我想打电话f([1,2,3])f([1.,2.,3.])只要元素的类型是真实的.

我已经读过你可以推广或转换数组(p.eg f(convert(Array{Real}, [1, 2, 3]))左右),但我认为这种方式非常动态且乏味.

有没有其他选择而不是摆脱强类型的行为?

谢谢.

arrays strong-typing julia

5
推荐指数
1
解决办法
813
查看次数

在julia 0.4中工作的匿名函数数组,而不是0.5.1

我正在将一些代码从Julia 0.4.7移植到0.5.1.我注意到有一些与匿名函数数组不兼容的东西.代码在这里:

f = x::Array{Function} -> size(x)

# Option 1    
f([k -> k+1, k-> k+1]) # This works in 0.4 & 0.5

# Option 2
f(repmat([k -> k+1], 2)) # This only works in 0.4
Run Code Online (Sandbox Code Playgroud)

据我所知,区别在于虽然在0.4中匿名数组仍然在内部被视为数组{Function,1},但在0.5中它看起来像数组{#11#12,1}(数字可能会改变),所以然后它引发一个MethodError,因此它们不匹配.

虽然这个例子很愚蠢但它显示了我真正需要的东西:复制匿名函数的次数可变.

谢谢!

arrays anonymous-function julia

2
推荐指数
1
解决办法
149
查看次数

标签 统计

arrays ×2

julia ×2

anonymous-function ×1

strong-typing ×1