【发布时间】:2021-08-03 16:38:53
【问题描述】:
polars 库实现以下方法将其转换为数组:
impl DataFrame {
pub fn to_ndarray<N>(&self) -> Result<Array2<N::Native>>
where
N: PolarsNumericType,
N::Native: num::Zero + Copy,
{}
}
我想通过使用这个函数来实现一个特征来使它更有用:
impl<N> From<DataFrame> for Array2<N::Native>
where
N: PolarsNumericType,
N::Native: num::Zero + Copy
{}
这给了我:
129 | impl<N> From<DataFrame> for Array2<N::Native>
| ^ unconstrained type parameter
这是一个众所周知的问题,有上百万个问题。
有人能用英文解释一下为什么编译器会在这里混淆吗?
在我看来,一切都受到了限制:DataFrame 可以转换为任何Array2<N>,受一些特征的限制。我想这意味着输出类型是通用的,但原始结构 impl 也是如此。我的特质如何不受限制?
【问题讨论】:
-
有一百万个问题——比如什么?链接到他们并解释您对这些答案的什么。否则,任何回答者都可能只给你完全相同的答案你已经读过,浪费你的时间。
-
对于不了解极坐标的任何人,也可以独立于该库提出同样的问题:Playground(PhantomData 只是为了让编译器对该结构不使用其通用参数保持沉默)
标签: rust