小编use*_*988的帖子

如何定义一个特征方法来获取可以是其实现者设置的类型的值?

我有一个关于特定特征的定义的问题。基本上我想定义一个特征,它提供一个函数来获取可以识别它的结构的 id (或键)。但是,我陷入困境,不知道如何定义该特征(或具体实现)。

例如我Data这里有这个结构:

#[derive(Debug)]
struct Data{
    id: String,
    value: i32
}
Run Code Online (Sandbox Code Playgroud)

现在假设我想创建一个仅包含单个函数的特征。这个函数应该提供某种类型的密钥(因此是可哈希的,等等):

trait Entity {
    fn get_id<K: Eq + PartialEq + Hash>(&self) -> K;
}
Run Code Online (Sandbox Code Playgroud)

但当我想实现这个特质时,我陷入了困境。例如,我收到以下代码片段的错误消息:类型不匹配:

impl Entity for Data {
    fn get_id<String>(&self) -> String {
        self.id.clone()
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以做什么来克服这个问题?

traits rust

2
推荐指数
1
解决办法
95
查看次数

标签 统计

rust ×1

traits ×1