我想用DataArrays.DataArray fun1
作为唯一参数编写函数y
。 y
可以是整数或浮点数(以向量或矩阵形式)。
我试图遵循我在stackoverflow(Functions that take DataArrays and Arrays as arguments in Julia)和官方文档(http://docs.julialang.org/en/release-0.5/manual/methods/)中找到的建议。但是,我无法编写一个灵活的代码来处理y周围的不确定性。
我想要(但能够处理数值DataArrays.DataArray):
function fun1(y::Number)
println(y);
end
有什么建议吗?
答案 0 :(得分:1)
可以定义一个选项:
fun1{T<:Number}(yvec::DataArray{T}) = foreach(println,yvec)
然后,
using DataArrays
v = DataArray(rand(10))
w = DataArray(rand(1:10,10))
fun1(v)
#
# elements of v printed as Flaot64s
#
fun1(w)
#
# elements of w printed as Ints
#
需要注意的一个微妙但反复出现的点是Julia参数类型的不变性,这需要定义参数函数。查看有关类型的文档应该澄清这个概念(http://docs.julialang.org/en/release-0.4/manual/types/#types)。