Rustの初心者です、よろしくお願いします。
ムーブが起きないように xy() の引数には自身の参照を渡したいです。
この場合、T型はコピートレイトを実装していないのにmoveが起きている というエラーが出ます。
Pointにコピートレイトを実装したくない場合どのような解決方法がありますか?
lang
1#[derive(Debug)] 2struct Point<T> {x: T, y: T} 3 4impl<T> Point<T> { 5 fn xy(&self) -> (T, T) { 6 (self.x, self.y) 7 } 8} 9 10fn main() { 11 let p = Point {x: 10, y: 20}; 12 let t = p.xy(); 13 14 println!("point is {:?}", t); 15 println!("point is {:?}", p); 16}
こちらの「コードを入力」のようにコードを整形してください
https://teratail.com/help#about-markdown
```lang-Rust
#[derive(Debug)]
struct Point<T> {x: T, y: T}
impl<T> Point<T> {
fn xy(&self) -> (T, T) {
(self.x, self.y)
}
}
fn main() {
let p = Point {x: 10, y: 20};
let t = p.xy();
println!("point is {:?}", t);
println!("point is {:?}", p);
}
```
equal-l2 さん
システムを良く理解していないもので、失礼しました。
回答1件
あなたの回答
tips
プレビュー