問題タブ [borrow-checker]
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.
pattern-matching - Strings のスライスでスライス パターンを使用する
s のスライスでスライス パターンを使用しようとしていますString
。String
Rust はスライスの s を&str
リテラルと一致させないため、これは機能しません。String
s のスライスをs のスライスに変換する方法がわかりませんでした&str
。
rust - データの具体的な Vec 表現の代わりにイテレータを公開しようとして、借用した値が十分に長生きしない
データのグリッドを表す構造体と、行と列のアクセサーがあります。Vec の代わりにイテレータを返す行と列のアクセサを追加しようとしています。
関数rows_iter
との両方cols_iter
に同じ問題があります: error: borrowed value does not live long enough
. 私は多くのことを試しましたが、ここに投稿する最も単純なものに戻しました。
rust - 変数をローテーションするときに「変数が借用されているため、変数の外に移動できません」
ファイルに書き込み、書き込み先のファイルを時々ローテーションするプログラムを書いています。ファイルのローテーションを確認すると、構造体によって借用されているため、ファイルを変更できないようです。構造体のインスタンスであってもdrop
、ファイルの所有権を取り戻して名前を変更することはできないようです。これが私の例です:
ファイル作成を中間変数new
の代わりに関数呼び出しに移動することでこれを機能させることができることはわかっていますが、すべての変数参照が返される必要があるすべての変数を強制的にドロップするこのメソッドの理由を知りたいです動作しません。FileStruct
file
rust - イテレータが新しいベクトルを生成するときの競合する有効期間要件
私はGrid
このような構造体を持っています:
私はその上にさまざまな種類のイテレータを書き直そうとしています (主に演習として、ここで提示された特定の問題を解決するための「より良い」方法がある場合でも、これを行いたいと思います)。
行の反復は簡単でした。フィールドは単なる行のベクトルであるraw
ため、毎回後続の各行への参照を生成できます。
しかし、列を反復処理するのに苦労しています。への呼び出しごとに新しい Vec を作成しようとしましたnext()
が、参照が十分に長く存続しません。これは理にかなっています。以下のコードは、一時的な vec への参照を iterator 構造体に格納して、有効期間を継承しようとする試みです。しかし、それもうまくいきません:
エラーが発生します:
提案が特性と互換性がないため、「ヘルプ」行は役に立ちません。
rust - コレクションをコンテキスト外に移動する
ライフタイムを使用していくつかの特性を実装しようとしていますが、いつものように借用チェッカーと戦っています。
私の特性は次のようになります。
遊び場リンク
これにより、次のエラーが発生します。
なぜこれが起こっているのか理解していると思います.自己を借りているので、データをコピーできません. どうすればこれを回避できますか?
rust - 同じリソースを 2 回使用しようとした場合の「移動された値の使用」
コードは次のとおりです。
問題のある行がコメントアウトされている場合、コードは正常にコンパイルされます。コメントを外すと、エラーが発生し始めます。
問題は、初めて使用するときに移動することだと理解していますが、テストで両方にアクセスする必要があるため、これら 2 つのサブフォルダー間stage_dir
で共有する方法がわかりません。stage_dir
私は遊んでみました&stage_dir
が、それは私にはさらに不明瞭ないくつかの警告を生成しました.
rust - ベクターはクローンを作成するまで長生きしない
なぜv
snippet で長生きしないのか理解できません(2)
が、それ以外の場合は機能します。clone
の変数が必要ない(1)
のに、2 番目のケースを機能させるためにクローンを作成する必要があるのはなぜですか?
rust - 構造体フィールドから変数を割り当てるときに「借用したコンテンツを移動できません」
私は Rust を学んでいて、借用チェッカーと戦っています。
私は基本的なPoint
構造を持っています。scale
ポイントのすべての座標を変更する関数があります。という名前の別のメソッドからこのメソッドを呼び出したいconvert
:
今、私は次のエラーがあります:
私は何を間違っていますか?