問題タブ [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.

0 投票する
0 に答える
56 参照

rust - 異なるフィールドで同時に機能する 2 つのメンバー関数を呼び出す

古いプロジェクトを Rust に移植していますが、解決策が見つからない問題に直面しました。私が見つけた唯一の同様のものはthisで、実際の質問には答えません。根本的な問題は次のとおりです。

私の実際のコードでは、これがあります:

メソッドの実装をインライン化した場合にのみコンパイルされ、メソッドが実際の構造体ではなくフィールドのメソッドであるimmutable_scanline_buffer()ためにのみコンパイルされます。draw_scanline()self.bitmapGlyphPlacer

原因はわかりましたが、このような場合はどのように対処すればよいのでしょうか? これらの 2 つのフィールドは の実装の一部にすぎないため、分離できませんGlyphPlacer。また、そのようなコードを常にコピー アンド ペーストできるとimmutable_scanline_buffer()は限りません。

0 投票する
0 に答える
397 参照

rust - &mut self への参照のボックス化

私はRustが初めてで、学習プロセスの一環として、各ノードが子のベクトルとその親への参照を持つツリー構造を作成しようとしています。addChild()新しいノードの値 (i32今のところ s ) を取得し、それを子リストに追加し、それ自体への参照を親として渡す関数をノードに作成したいと考えています。Rust by Example のリンク リストの例に従って、親を . で参照しようとしていBox<>ます。私は親を変更し、それへの参照を渡しているため、借用チェッカーが参照を解除することを望んでいないため、行き詰まりました&mut self(以下のコードを参照)。

このことから、2 つの質問があります。

  1. ツリー構造で親への参照を保持する正しい方法は何ですか? CIでは、親への単純なポインターと、子の任意のコレクションを保持します。

  2. Rust で同じ関数内のオブジェクトへの参照を変更して渡すにはどうすればよいでしょうか?

以下は、私の enum と impl の完全なコードであり、それを渡さずに self を変更するための追加のテスト関数があります。


0 投票する
3 に答える
6375 参照

hashmap - Rust での文字列と HashMap の逆参照

Rust で HashMaps がどのように機能するかを理解しようとしており、この例を思いつきました。

最後の行のコメントを外してコードをコンパイルしようとすると、次のエラーが発生します

ドキュメントの Trait implementation セクションでは、逆参照を次のように指定しています。fn deref(&self) -> &str

では、ここで何が起こっているのでしょうか?

0 投票する
3 に答える
453 参照

collections - 借用した HashMap のキーと値が、値ではなく参照によってアクセスされるのはなぜですか?

借用した関数がHashMapあり、キーで値にアクセスする必要があります。キーと値が値ではなく参照によって取得されるのはなぜですか?

私の簡略化されたコード:

  • file_ids.get(&whatever).unwrap()の代わりに、参照としてキーを指定する必要があるのはなぜfile_ids.get(whatever).unwrap()ですか?

  • 私が理解しているように、所有しているコレクションが借用されているため、 は借用された stringを意味するlast_stringtype でなければなりません。そうですか?&String

  • 上記の点と同様に、から借用した値を取得するため、 がpos型であると仮定するのは正しいですか?&u16ids

0 投票する
1 に答える
341 参照

rust - ツリーのノードのフィールドへの変更可能なポインタを作成して変更するには?

ツリー内のノードを見つけたいのですが、ノードのコンテナーへのポインターが必要です。&mut Vec<Node>

0 投票する
4 に答える
4371 参照

rust - 再帰構造を反復するときに変更可能な参照を取得できません:一度に複数回変更可能として借りることはできません

特定の位置に要素を挿入するために、再帰的なデータ構造を繰り返しナビゲートしようとしています。私の限られた理解では、これは、構造のルートへの変更可能な参照を取得し、それをそのフォロワーへの参照で連続的に置き換えることを意味します。

(さび遊び場リンク)

ただし、これは失敗します。

これは両方とも同じ構造anchorを参照しているため意味がありますが、実際には構造を破壊した後nodeは気にしません。anchor

back()安全なRustを使用して正しく実装するにはどうすればよいですか?

0 投票する
1 に答える
1911 参照

hashmap - Rust HashMap と文字列の借用に関する混乱

このプログラムは、整数 N を受け入れ、その後にスペースで区切られた 2 つの文字列を含む N 行が続きます。HashMap最初の文字列をキーとして、2 番目の文字列を値として使用して、これらの行を に入れたいと思います。

プログラムは意図したとおりに動作します。

HashMapこれらの解析された文字列を aおよび uncommentに入れようとするとmap.insert(data[0], data[1]);、コンパイルは次のエラーで失敗します。

map.insert()式が文字列をまったく借用していないと思うので、なぜこのエラーが発生するのかわかりませんinput