我最近查看了一些Julia的源代码,发现其中一些函数对我来说似乎很神秘。
在Julia源代码中定义了一些没有参数但有类型注释的函数。
例如:在abstractarray.jl的第20行中。
我稍微尝试了一下
它似乎可以将类型本身作为参数并返回正确的值:
有人能解释一下方法中的
在Julia源代码中定义了一些没有参数但有类型注释的函数。
例如:在abstractarray.jl的第20行中。
我稍微尝试了一下
ndims
函数,它似乎可以将类型本身作为参数并返回正确的值:
julia> ndims(AbstractArray{Float64, 2})
2
julia> ndims([1.1 0.3; 0. 0.5])
2
有人能解释一下方法中的
(::DataType)
是如何工作的吗?或者在Julia中它是什么意思?
@which
来确保调用了哪个方法。 实际上,为了简化我的问题,我只想知道如果我将Array
的实例的ndims
定义为ndims(arr::AbstractArray{T, n}) = n
而不是源代码中发现的ndims(::AbstractArray{T, n}) = n
,有什么区别。 - DboyLiao{T,n}
在某种意义上也是“参数”,但是在类型系统的层面上。如果你需要实际操作arr
,那么当然必须像第一个版本一样给参数命名。 - Isaiah Norton