3
pub struct Character {
name: String,
hp: i32,
level: i32,
xp: i32,
xp_needed: i32,
gold: i32
}
impl Character {
pub fn new(name: String) -> Character {
let mut rng = thread_rng();
let hp: i32 = rng.gen_range(12, 75);
let gold: i32 = rng.gen_range(10, 50);
Character { name: name, hp: hp, level: 1, xp: 0, gold: gold, xp_needed: 100 }
}
pub fn get_name(&self) -> String {
self.name
}
// ...
}
ここでルールをどのように厳密に破棄していますか?Rustの借用コンテンツから移動することはできません
高レベルでは、これは錆に対抗しています。自分が所有していないため、借りたものの所有権を譲渡することはできません。
私にはありませんか?私は次のような他の機能を持っています:
pub fn get_hp(&self) -> i32 {
self.hp
}
これはうまくいきます。
|
23 | self.name
| ^^^^ cannot move out of borrowed content
error: aborting due to previous error
何が起こっているのですか?文字の名前を返す適切な方法は何ですか? get_hp
メソッドは機能しますが、get_name
は機能しないのはなぜですか?
あります[*同じエラーメッセージのように多くの*他の質問](http://stackoverflow.com/search?q=%5Brust%5D+move+out+of+borrowed+content+is %3Aq)。 'i32'は' Copy'、 'String'はそうではありません。あなたは**自分の「自己」を所有していない、それは借りた(「自己」)。 – Shepmaster
@Shepmasterこれは私の質問に答えたり、解決策を教えてくれません。 – TheWebs
TheWebs @Shepmasterは、あなたの質問に何らかの努力を払わなければならないことを意味します。あなたに類似する他の質問がある場合は、その答えがあなたの問題に当てはまらない理由を説明してください。 – mcarton