相关疑难解决方法(0)

julia-0.6中函数定义中的`where`

我试图在阅读发行说明的基础上理解Julia v0.6中的新类型系统.

任何人都可以告诉我什么

inv(M::Matrix{T}) where T <: AbstractFloat
Run Code Online (Sandbox Code Playgroud)

给了我与使用经典不同的东西

inv{T<:AbstractFloat}(M::Matrix{T})
Run Code Online (Sandbox Code Playgroud)

julia

25
推荐指数
1
解决办法
3079
查看次数

如何在Julia中使用向量作为类型参数

这与我之前的问题类似,但有点复杂.

在我定义一个带有关联整数作为参数的类型之前,Intp {p}.现在我想用vector作为参数定义一个类型.

以下是我能写的最接近我想要的内容:

type Extp{g::Vector{T}}
     c::Vector{T}
end
Run Code Online (Sandbox Code Playgroud)

换句话说,Extp应该相对于Vector,g来定义,并且我希望内容c是另一个Vector,其条目应该是与g的条目相同的类型.

嗯,这不起作用.

问题1:我认为我不能在type参数中使用::.

问题2:我可以通过制作g和c的类型来解决这个问题,并确保向量中的类型在构造函数中匹配.但是,即使我完全把所有东西拿出来使用

type Extp{g}
     c
end
Run Code Online (Sandbox Code Playgroud)

它似乎仍然不喜欢这个.当我尝试按照我想要的方式使用它时,

julia> Extp {[1,1,1]}([0,0,1])

错误:类型:apply_type:在Extp中,期望类型{T <:Top},得到数组{Int64,1}

那么,朱莉娅不喜欢特定的矢量与类型相关联吗?我正在尝试做的只适用于整数,就像在我的Intp问题中一样吗?

编辑:在文档中,我看到类型参数"可以是任何类型(或整数,实际上,虽然在这里它显然用作一种类型)." 这是否意味着我所要求的是不可能的,并且只有类型和整数适用于Type参数?如果是这样,为什么?(通过这种方式,什么使整数比Julia中的其他类型更特殊?)

julia

3
推荐指数
1
解决办法
886
查看次数

标签 统计

julia ×2