Rust 一个人如何绕过“a”呢;借用内容“;从对特征的引用读取值时出错';关联类型是什么?
我有一个指向Rust 一个人如何绕过“a”呢;借用内容“;从对特征的引用读取值时出错';关联类型是什么?,rust,Rust,我有一个指向u64值的指针,无法读取它。我得到这个错误: 错误[E0507]:无法移出借用的内容 -->/home/niko/sub/subside/srml/system/src/lib.rs:533:32 | 533 |让mut-aid:T::AccountId=*复制who; | ^^^^^^^^^ | | |无法移出借用的内容 帮
u64
值的指针,无法读取它。我得到这个错误:
错误[E0507]:无法移出借用的内容
-->/home/niko/sub/subside/srml/system/src/lib.rs:533:32
|
533 |让mut-aid:T::AccountId=*复制who;
| ^^^^^^^^^
| |
|无法移出借用的内容
帮助:考虑删除'* ':'Copyf'
如何避免“借用内容”错误?如果无法读取变量所指向的任何内容,那么使用指向变量的指针有什么意义
impl<T: Trait> Module<T> {
// getter for AccountId
pub fn get_account_id(who: &T::AccountId) -> T::AccountId {
let mut copy_who: &T::AccountId = who;
{
let mut aid: T::AccountId = *copy_who;
return aid;
}
}
}
你的问题可以归结为
trait Example {
type AccountId;
}
fn get_account_id<T>(who: &T::AccountId)
where
T: Example,
{
*who;
}
为了编译此代码,T::AccountId
必须实现Copy
:
fn get_account_id<T>(who: &T::AccountId)
where
T: Example,
T::AccountId: Copy,
{
*who;
}
fn获取账户id(who:&T::AccountId)
哪里
T:举个例子,
T::AccountId:复制,
{
*世卫组织;
}
然而,这并不是最灵活的解决方案
fn get_account_id<T>(who: &T::AccountId)
where
T: Example,
T::AccountId: Copy,
{
*who;
}