問題タブ [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.
reference - Rust で変更可能な参照を借りて返すエレガントな方法
何らかの操作を行った後、変更可能な参照を返そうとしています。これは、次のコードで最もよく説明されています。
プレイ版はこちら。ブール値の回避策は、ブロックSome(self)
内から戻ると複数回借用することになるためです。ブール値を使用せずに関数match
を実装するエレガントな方法はありますか? push
関数の署名を保持することが可能であれば、それはボーナスです。ありがとうございました!
memory-management - TcpStream を BufReader に渡してから戻すにはどうすればよいですか?
私は構造体を持っています:
メソッドで:
それはうまくいきます。これは FTP サーバーなので、新しいサーバーを取得するときは次のようTcpStream
にTcpListener::bind
します。
そして、そのstart
メソッド内で私は呼び出します:
案の定、FTP クライアントにそのメッセージが表示されます。ここまでは順調ですね。
しかし、私は次のことを行います。
write_message
そして、ループ内の次の呼び出しに到達すると:
*self
も不変として借用されるため、可変として借用できませんself.cstream
[E0502]
完全なコード:
ループ内で呼び出すことができるように、どうすれば変更できますか?write_message
string - 文字列を HashSet に渡すにはどうすればよいですか?
クイック文字列検索にを使用したいのですが、コンパイラ エラーなしでHashSet
文字列変数を に渡す方法が見つからないようです。contains
これにより、次のエラーが発生します。
私が試したら
それから私は得る
私は困惑しています、ある種の型キャストを行う必要がありますか?
functional-programming - 一致内で参照を折りたたむと、ライフタイム エラーが発生します
s
単純な構造体のベクトルを反復処理し、構造体に応じて異なる文字列を追加して、文字列を作成したいと考えていますacc
。
このコードを実行すると、次のエラーが発生します。
問題は、&str
私が作成した の寿命がすぐに終わるように見えることです。ただし、最初to_string()
に a が返された場合&str
、コンパイラは文句を言わなかったでしょう。それでは、違いは何ですか?
構築している限り文字列参照を存続させたいことをコンパイラに理解させるにはどうすればよいs
ですか?
string - String (&String)、Vec (&Vec)、または Box (&Box) への参照を関数の引数として受け入れることが推奨されないのはなぜですか?
&String
引数としてa を取るいくつかの Rust コードを書きました。
Vec
またはへの参照を受け取るコードも作成しましたBox
。
ただし、このようにするのは得策ではないというフィードバックをいくつか受け取りました。なぜだめですか?