問題タブ [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 - Rust クロージャでバインディングを再利用する
私は生成しようとしていますVec<(Point, f64)>
:
次のエラーが表示されます。
タプルの両方の要素で使用できないことは理解していますpoint
が、参照を保存しようとすると、有効期間に関するエラーが発生します。
rust - ライフタイム パラメーターを持つ特性の関連付けられたタイプを使用したライフタイム エラー
関連付けられた型を使用しているため、Rust 1.14 でライフタイム エラーが発生します。これは、次の 2 つの同様のプログラムによって示されます。最初のプログラムはエラーなしでコンパイルされ、2 つ目はライフタイム エラーがあります。
プログラム #1 — エラーなしでコンパイル
プログラム #2 — ライフタイム エラーがあります
2 番目のプログラムのコンパイル時エラーは次のとおりです。
2 つのプログラムの差分は次のとおりです。
唯一の違いは、最初のプログラムを変更して、定義内の型パラメーターの代わりに関連付けられた型を使用するとstruct
、有効期間エラーが発生することです。なぜこれが起こるのか分かりません。私が知る限り、関連付けられた型に追加の有効期間制限が発生することはありません。これはすべて単なる'a
ですが、明らかに Rust コンパイラは同意しません。
2 番目のプログラムのmain
関数の反復を単純なインスタンス化に置き換えると、ライフタイム エラーはなくなります。あれは:
反復が直接インスタンス化と異なる理由がわかりません。
rust - Rust での複数の借用
Rust でこのようなものを実装する一般的なパターンはありますか?
エラーは
私は問題を理解していますが、Rust でこのようなものを実装する方法がわかりません。
コードはプレイグラウンドでも入手できます。