The*_*rer 5 arrays strong-typing 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]))左右),但我认为这种方式非常动态且乏味.
有没有其他选择而不是摆脱强类型的行为?
谢谢.
以经解扩@ user3580870,你也可以使用typealias,使函数定义有点更简洁:
typealias RealArray{T<:Real} Array{T}
f(x::RealArray) = "do something with $x"
Run Code Online (Sandbox Code Playgroud)
然后你也可以在匿名函数中使用typealias:
g = (x::RealArray) -> "something else with $x"
Run Code Online (Sandbox Code Playgroud)