問題タブ [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 投票する
1 に答える
3388 参照

reference - Rust で変更可能な参照を借りて返すエレガントな方法

何らかの操作を行った後、変更可能な参照を返そうとしています。これは、次のコードで最もよく説明されています。

プレイ版はこちら。ブール値の回避策は、ブロックSome(self)内から戻ると複数回借用することになるためです。ブール値を使用せずに関数matchを実装するエレガントな方法はありますか? push関数の署名を保持することが可能であれば、それはボーナスです。ありがとうございました!

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

memory-management - TcpStream を BufReader に渡してから戻すにはどうすればよいですか?

私は構造体を持っています:

メソッドで:

それはうまくいきます。これは FTP サーバーなので、新しいサーバーを取得するときは次のようTcpStreamTcpListener::bindします。

そして、そのstartメソッド内で私は呼び出します:

案の定、FTP クライアントにそのメッセージが表示されます。ここまでは順調ですね。

しかし、私は次のことを行います。

write_messageそして、ループ内の次の呼び出しに到達すると:

*selfも不変として借用されるため、可変として借用できませんself.cstream[E0502]

完全なコード:

https://github.com/andrewarrow/tinted_pa​​radise/blob/169cc5f7025c417814f47a1fb3e3fc78ce4f9516/src/paradise.rs

https://github.com/andrewarrow/tinted_pa​​radise/blob/169cc5f7025c417814f47a1fb3e3fc78ce4f9516/src/starter.rs

ループ内で呼び出すことができるように、どうすれば変更できますか?write_message

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

string - 文字列を HashSet に渡すにはどうすればよいですか?

クイック文字列検索にを使用したいのですが、コンパイラ エラーなしでHashSet文字列変数を に渡す方法が見つからないようです。contains

これにより、次のエラーが発生します。

私が試したら

それから私は得る

私は困惑しています、ある種の型キャストを行う必要がありますか?

0 投票する
2 に答える
61 参照

functional-programming - 一致内で参照を折りたたむと、ライフタイム エラーが発生します

s単純な構造体のベクトルを反復処理し、構造体に応じて異なる文字列を追加して、文字列を作成したいと考えていますacc

このコードを実行すると、次のエラーが発生します。

問題は、&str私が作成した の寿命がすぐに終わるように見えることです。ただし、最初to_string()に a が返された場合&str、コンパイラは文句を言わなかったでしょう。それでは、違いは何ですか?

構築している限り文字列参照を存続させたいことをコンパイラに理解させるにはどうすればよいsですか?

0 投票する
2 に答える
16004 参照

string - String (&String)、Vec (&Vec)、または Box (&Box) への参照を関数の引数として受け入れることが推奨されないのはなぜですか?

&String引数としてa を取るいくつかの Rust コードを書きました。

Vecまたはへの参照を受け取るコードも作成しましたBox

ただし、このようにするのは得策ではないというフィードバックをいくつか受け取りました。なぜだめですか?