問題タブ [lifetime-scoping]
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 で明示的なライフタイムを指定する必要があるのはいつですか?
私が2つの機能を持っている場合
エラーをfoo
返し、bar
正しい関数ヘッダーになるのはいつですか? なぜ生涯を明示的に宣言するのか、私は混乱しています:
「a」は「生涯 a」と読みます。技術的には、すべての参照にはライフタイムが関連付けられていますが、一般的なケースではコンパイラによってそれらを省略できます。
ライフタイムが何であるかは理解していますが、ライフタイムを明示的に指定すると'a
どうなりますか? 参考までに、Rustの本を読み物として使用しています
c# - 可変寿命
実行行がコードブロックの外に出ると、変数はどうなりますか? 例えば:
そのため、変数を宣言して設定します。コード ブロック (5 行目) の外に出ると、変数番号はどうなりますか?
クラスのインスタンスを作成する別の例を次に示します。
コード ブロック (11 行目) の外に出ると、オブジェクト参照 myClient はどうなりますか?
どちらの場合も変数が割り当てられていると思いますが、割り当てが解除されたときは?
python - Python ライフタイム モジュール エラー
Linux AMI サーバーに Lifetimes モジュールをロードしようとしていました。私はそれを問題なくインストールし、すべてがエラーなしで動作するように見えました.
しかし、私がそれを使用したとき、私は以下のエラーを受け取りました。(修正できると思ったいくつかのことを試みましたが、何も機能しませんでした)
c++ - 戻り前に引数の破棄が発生しますか?
OK、次の一連のイベントがあります。
- r値オブジェクトを構築します
- そのr値オブジェクトへのイテレータをパラメータとして関数に渡します
- 関数はこの反復子で動作します
- 関数はこの反復子を値で返します
- イテレータを逆参照します
r値オブジェクトのクリーンアップの原因がわかりません。その行の終了ですか?
OK、具体的には、この質問に対するより良い答えを見つけようとしています: string Multiplication in C++そして、私はコードを持っています:
string
そのため、内部で構築された がいつgenerate_n
破棄されるべきかを知りたいです。ちなみに、これは gcc 5.1 で問題なく動作するようです: http://ideone.com/Y8rDs5しかし、未定義の動作が発生する可能性があります。これは、コードが Visual Studio 2015 でセグメンテーション違反を起こすという事実によって暗示されています。
rust - 単純なリソース Allocator 構造体による生涯エラー
バッファーの固定プールからバッファーを割り当ておよび割り当て解除する単純なアロケーターを作成しようとしています。
エラーは
単純に削除して、セル プールcell0
でのみcell1
使用できるようにすると、次のエラーが発生します。
このコードを修正してコンパイルし、空きリストに 2 つ以上の項目が含まれるようにするための推奨事項はありますか?
配列への参照のリストを作成し、それらをポップできるようにしたい-しばらくそれらを使用し、使用済み/終了済みの値をフリーリストに戻します。
ここでの動機は、#![nostd]
ディレクティブを使用するライブラリを構築することであるため、適切に動作するにはアロケータ インターフェイスが必要です。
rust - rust-xcb から「roots」を呼び出すと、「does not live enough」エラーが発生する
xcb で作成されたウィンドウで Cairo サーフェスを使用しようとしています。C の例と、Rust XCB および Cairo バインディングがあります。ほぼ完成しましたが、このエラーは謎のままです。
私のコード:
私はこれを次のように呼びます:
そして、次のようなエラーが発生します。
screen
およびdepth
変数の同じエラー。
誰かが説明できますか - なぜ「setup
十分に長生きしない」のですか? 私が理解しているように、オプションをsetup
機能させると破棄return
され、機能内で制限なく使用できます。
get_setup()
コード:
rust - 複数の引数に同じ有効期間を使用する利点は何ですか?
2 つのライフタイムを使用する場合と比較して、上記のコードの利点は何ですか? 上記のコードは機能するが、2 つのライフタイムが機能しない状況はありますか?
closures - ボックス化された Fn には、テスト時にのみ有効な「静的」が必要ですか?
を使用してrustc 1.10.0
、ボックス化されたクロージャーを通過するコードを作成しようとしています。最終的な目標は、フラクタルのアニメーションを手続き的に生成することです。現在、次のような関数シグネチャがいくつかあります。
バイナリで一度に 1 つのイメージに対してこのコードを実行すると、問題なく動作します。
ただし、シリアルおよびパラレルのイメージ生成が両方とも同じ結果を生成していることを確認したかったので、次のテスト関数を作成しました。
これはコンパイルを拒否し、私はそれを理解できません。それが与えるエラーは次のとおりです。
そこで何が起こっているのか本当にわかりません。コンパイラが通常これらの特性を自動的に導出する場合、補間関数のボックス化された戻り値の型Send
を手動でマークする必要がある理由がわかりません。Sync
それでも、問題が解決するまで、コンパイラが提案するマーカーを追加し続けました。
本当の問題は、ボックス化されたクロージャーをマークすることができない理由をかなり推測していると思いますが'static
、この場合にその寿命が必要な理由や修正方法がわからないことです。
おそらく問題は、一度に2つの読み取り借用からクロージャーを参照しようとしたことだと思いました(これは問題ないはずですが、必死でした)。とにかく、でラップinterpolate
するRc
とまったく同じエラーが発生するため、それは問題ではありませんでした。
c# - 作成後に Autofac LifetimeScope に登録を追加することは可能ですか?
LifetimeScope
次のように作成されたときに登録を追加できることを私は知っています:
作成後に登録を追加することLifetimeScope
はできますか? using
(たとえば、ブロック内に登録を追加するため)