問題タブ [borrowing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 異なるフィールドで同時に機能する 2 つのメンバー関数を呼び出す
古いプロジェクトを Rust に移植していますが、解決策が見つからない問題に直面しました。私が見つけた唯一の同様のものはthisで、実際の質問には答えません。根本的な問題は次のとおりです。
私の実際のコードでは、これがあります:
メソッドの実装をインライン化した場合にのみコンパイルされ、メソッドが実際の構造体ではなくフィールドのメソッドであるimmutable_scanline_buffer()
ためにのみコンパイルされます。draw_scanline()
self.bitmap
GlyphPlacer
原因はわかりましたが、このような場合はどのように対処すればよいのでしょうか? これらの 2 つのフィールドは の実装の一部にすぎないため、分離できませんGlyphPlacer
。また、そのようなコードを常にコピー アンド ペーストできるとimmutable_scanline_buffer()
は限りません。
rust - &mut self への参照のボックス化
私はRustが初めてで、学習プロセスの一環として、各ノードが子のベクトルとその親への参照を持つツリー構造を作成しようとしています。addChild()
新しいノードの値 (i32
今のところ s ) を取得し、それを子リストに追加し、それ自体への参照を親として渡す関数をノードに作成したいと考えています。Rust by Example のリンク リストの例に従って、親を . で参照しようとしていBox<>
ます。私は親を変更し、それへの参照を渡しているため、借用チェッカーが参照を解除することを望んでいないため、行き詰まりました&mut self
(以下のコードを参照)。
このことから、2 つの質問があります。
ツリー構造で親への参照を保持する正しい方法は何ですか? CIでは、親への単純なポインターと、子の任意のコレクションを保持します。
Rust で同じ関数内のオブジェクトへの参照を変更して渡すにはどうすればよいでしょうか?
以下は、私の enum と impl の完全なコードであり、それを渡さずに self を変更するための追加のテスト関数があります。
hashmap - Rust での文字列と HashMap の逆参照
Rust で HashMaps がどのように機能するかを理解しようとしており、この例を思いつきました。
最後の行のコメントを外してコードをコンパイルしようとすると、次のエラーが発生します
ドキュメントの Trait implementation セクションでは、逆参照を次のように指定しています。fn deref(&self) -> &str
では、ここで何が起こっているのでしょうか?
collections - 借用した HashMap のキーと値が、値ではなく参照によってアクセスされるのはなぜですか?
借用した関数がHashMap
あり、キーで値にアクセスする必要があります。キーと値が値ではなく参照によって取得されるのはなぜですか?
私の簡略化されたコード:
file_ids.get(&whatever).unwrap()
の代わりに、参照としてキーを指定する必要があるのはなぜfile_ids.get(whatever).unwrap()
ですか?私が理解しているように、所有しているコレクションが借用されているため、 は借用された stringを意味する
last_string
type でなければなりません。そうですか?&String
上記の点と同様に、から借用した値を取得するため、 が
pos
型であると仮定するのは正しいですか?&u16
ids
rust - ツリーのノードのフィールドへの変更可能なポインタを作成して変更するには?
ツリー内のノードを見つけたいのですが、ノードのコンテナーへのポインターが必要です。&mut Vec<Node>
rust - 再帰構造を反復するときに変更可能な参照を取得できません:一度に複数回変更可能として借りることはできません
特定の位置に要素を挿入するために、再帰的なデータ構造を繰り返しナビゲートしようとしています。私の限られた理解では、これは、構造のルートへの変更可能な参照を取得し、それをそのフォロワーへの参照で連続的に置き換えることを意味します。
ただし、これは失敗します。
これは両方とも同じ構造anchor
を参照しているため意味がありますが、実際には構造を破壊した後node
は気にしません。anchor
back()
安全なRustを使用して正しく実装するにはどうすればよいですか?
hashmap - Rust HashMap と文字列の借用に関する混乱
このプログラムは、整数 N を受け入れ、その後にスペースで区切られた 2 つの文字列を含む N 行が続きます。HashMap
最初の文字列をキーとして、2 番目の文字列を値として使用して、これらの行を に入れたいと思います。
プログラムは意図したとおりに動作します。
HashMap
これらの解析された文字列を aおよび uncommentに入れようとするとmap.insert(data[0], data[1]);
、コンパイルは次のエラーで失敗します。
map.insert()
式が文字列をまったく借用していないと思うので、なぜこのエラーが発生するのかわかりませんinput
。