問題タブ [unboxing]

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 投票する
3 に答える
2766 参照

.net - ボクシングとアンボクシングは同じパフォーマンスヒットをもたらしますか?

ボクシングとアンボクシングは同じパフォーマンスヒットをもたらしますか?または、開梱はより高速です、としましょう?

(はいの場合、主な理由を簡単に説明できますか。)

ありがとう

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

c# - 文字列の箱を開けることはできますか?

私がアンボックス化を理解しているのは、MSDNの例のように、オブジェクトを取得してvaluetypeにアンボックス化するときです。

だから私はちょうど考えていました、文字列を箱から出すことができますか?文字列を表すことができるvaluetypeがないため、できません。私は正しいですか?

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

c# - ボックスを不明なタイプの ICollection にボックス化解除する方法は?

オブジェクトを保持できる IRecord オブジェクトがあります。これらのオブジェクトの名前は、プロパティとしてマッピングに保存されます。プロパティをループし、次のようにして IRecord から取得します。

これらのオブジェクトは常に ICollection です。ただし、 ICollection が事前に保持する型はわかりません。ICollection が何を保持するかを知らずに、オブジェクトを正しい ICollection にボックス化解除するにはどうすればよいですか?

以下のコードは、record[property が IColletion の場合に動作するバージョンなので、任意の ICollection を取得できるように変更したいと考えています。

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

haskell - HaskellでStablePtrのData.Vector.Unboxインスタンスを提供するには?

パッケージを使用して、ボックス化されていvectorない配列を保存したいStablePtr a

以下(またはそのバリエーション)をどのように使用できますか:

Unboxのインスタンスを宣言するにはStablePtr a

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

c# - オブジェクトからの値のタイプのボックス化解除

私はこの段落を理解しようとしてきましたが、どういうわけか私はそれを頭の中で仮想化できませんでした。誰かがそれを少し詳しく説明してください:

開箱はボクシングの正反対ではありません。開梱作業は、ボクシングよりもはるかに低コストです。ボックス化解除は、実際には、オブジェクト内に含まれる生の値型(データフィールド)へのポインターを取得する操作にすぎません。事実上、ポインタはボックス化されたインスタンスのボックス化されていない部分を参照します。したがって、ボクシングとは異なり、ボクシングの解除にはメモリ内のバイトのコピーは含まれません。この重要な説明を行った後、開開操作の後には通常、フィールドをコピーすることに注意することが重要です。

リヒター、ジェフリー(2010-02-05)。C#経由のCLR(Kindleの場所4167-4171)。OReillyMedia-A.Kindle版。

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

java - 次のうち、2番目のステートメントについて正しいものはどれですか?(開梱と自動開梱)

私はこの問題を解決するためにインターネット全体を見てきました。誰かがこれに正しく答えて、その理由を説明できますか?どうもありがとう!

次のコードを見てください。

次のうち、2番目のステートメントについて正しいものはどれですか?

  1. ステートメントは開箱を実行します

  2. ステートメントは自動ラッピングを実行します。

  3. ステートメントはオートボクシングを実行します。

  4. プリミティブ型をラッパークラスオブジェクトに割り当てることができないため、エラーが発生します。

0 投票する
3 に答える
315 参照

java - ハッシュテーブルの doublevalue() に関する混乱

  1. インラインbal = ((Double)balance.get("John Doe")).doubleValue();で の使用はdoubleValue何ですか? (オブジェクトを double 値に変換することは知っています)が、これなしで実行するとプログラムは正常に実行されます。
  2. (私が間違っている場合は修正してください) balance.getここで値の double オブジェクトを取得し、3434.34その前に( double )ボックス化を解除して double 値の double オブジェクトに変換します。次に、doubleValue()この double をオブジェクトとして扱う方法と理由3434.34?????
0 投票する
1 に答える
1645 参照

haskell - Haskell で Data.Vector.Unboxed インスタンスを作成するにはどうすればよいですか?

確率の負の対数で多くの作業を行う数値アプリケーションがあります。これは (確率の範囲が 0 から 1 であるため) 正の double または負の無限大 (基になる確率がゼロの場合) の値を取ります。

次のように、これらを newtype で使用してScoreいます。

さて、ビタビ アルゴリズムの実装で、私はData.Vector多くの を使用してきました。実際、いくつかData.Vectorの がありScoreます。パフォーマンスの調整を試みているときに、 を使用してみることにしData.Vector.Unboxedました。ただし、Unbox派生できない のインスタンスを作成する必要があり、何をする必要があるか (特に、型クラスのUnboxコントラクトは何か) がよくわかりません。Scoreは実際にはいくつかの便利なコンストラクターとセマンティクスを備えているためDouble、これは可能であると思います。私が知る限り、s のData.Vector.Unboxedベクトルの各スロットがどれくらいの大きさでScoreなければならないかを知る必要があり、それらを読み書きする方法を推測します (しかし、それらはDoubles によく似ています)。

それで、私は何をしますか?ありがとう!

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

haskell - シグナルの密集したツリー

リアルタイム信号を収集し、派生信号を計算し、生データと派生データの両方を循環バッファーに保存するため、最後の 100 万個のサンプルのみを保持します。

すべてのシグナルの現在の値をシリアル化する必要がある場合があります。だから私は次のようなものが必要です:

SignalBufferのシーケンスですSignalValue。ボックス化されていない浮動小数点数の配列にすることができます。Haskell はFunctorインスタンスを派生させることができるので、すべてからfmap最後にフェッチし、構造体を渡してシリアライズすることができます。SignalValueSignalBufferAeson

SignalBuffer新しいティックが到着したときにすべてのバッファに新しい値をプッシュできるように、循環バッファ API を実装するにはどうすればよいですか? メモリを節約したいので、ボックス化されていない配列を使用する必要があると思います。STUArray変更可能なボックス化されていない配列 ( ?) を使用して、配列の更新がメモリに蓄積されないようにすることは有利ですか? この設定で可変配列を使用することはまったく可能ですか? 私は変化する準備ができてMyDataおりCurrentSignals、仕事をするものは何でもします。

循環バッファを実装する方法を知っています。問題は、更新を にエレガントに適用する方法MyDataです。

みたいなことを考えている

一部の信号は、他の信号の「畳み込み」です (実際の畳み込みではなく、同様の種類の処理です)。シグナルのバッファーを更新するには、他のシグナルのバッファーにアクセスする必要があります。そのため、UpdateFunc はバッファー変更関数を受け入れて返しますMyDataSignalValue

updateAllBuffers次に「zip」D0 UpdateFuncMyDataて new を取得しますMyData

もちろんModifier、自分のタスクに合ったものを使用する準備ができています-それは関数、モナド値などです.

0 投票する
3 に答える
661 参照

java - Java コンパイラが null のボックス化解除を許可することがあるのはなぜですか?

例えば:

コンパイル時に失敗しますが、

実行時に (通常) 失敗します。ただ返そうとするとコンパイル エラーが発生するため、複数のパスがあり、それが潜在的に autoboxednullであるとコンパイラに推測させる何かがあると思います。javac が同じエラーで両方のケースのコンパイルに失敗しないのはなぜですか?nullint