問題タブ [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.
.net - ボクシングとアンボクシングは同じパフォーマンスヒットをもたらしますか?
ボクシングとアンボクシングは同じパフォーマンスヒットをもたらしますか?または、開梱はより高速です、としましょう?
(はいの場合、主な理由を簡単に説明できますか。)
ありがとう
c# - 文字列の箱を開けることはできますか?
私がアンボックス化を理解しているのは、MSDNの例のように、オブジェクトを取得してvaluetypeにアンボックス化するときです。
だから私はちょうど考えていました、文字列を箱から出すことができますか?文字列を表すことができるvaluetypeがないため、できません。私は正しいですか?
c# - ボックスを不明なタイプの ICollection にボックス化解除する方法は?
オブジェクトを保持できる IRecord オブジェクトがあります。これらのオブジェクトの名前は、プロパティとしてマッピングに保存されます。プロパティをループし、次のようにして IRecord から取得します。
これらのオブジェクトは常に ICollection です。ただし、 ICollection が事前に保持する型はわかりません。ICollection が何を保持するかを知らずに、オブジェクトを正しい ICollection にボックス化解除するにはどうすればよいですか?
以下のコードは、record[property が IColletion の場合に動作するバージョンなので、任意の ICollection を取得できるように変更したいと考えています。
haskell - HaskellでStablePtrのData.Vector.Unboxインスタンスを提供するには?
パッケージを使用して、ボックス化されていvector
ない配列を保存したいStablePtr a
以下(またはそのバリエーション)をどのように使用できますか:
Unbox
のインスタンスを宣言するにはStablePtr a
?
c# - オブジェクトからの値のタイプのボックス化解除
私はこの段落を理解しようとしてきましたが、どういうわけか私はそれを頭の中で仮想化できませんでした。誰かがそれを少し詳しく説明してください:
開箱はボクシングの正反対ではありません。開梱作業は、ボクシングよりもはるかに低コストです。ボックス化解除は、実際には、オブジェクト内に含まれる生の値型(データフィールド)へのポインターを取得する操作にすぎません。事実上、ポインタはボックス化されたインスタンスのボックス化されていない部分を参照します。したがって、ボクシングとは異なり、ボクシングの解除にはメモリ内のバイトのコピーは含まれません。この重要な説明を行った後、開開操作の後には通常、フィールドをコピーすることに注意することが重要です。
リヒター、ジェフリー(2010-02-05)。C#経由のCLR(Kindleの場所4167-4171)。OReillyMedia-A.Kindle版。
java - 次のうち、2番目のステートメントについて正しいものはどれですか?(開梱と自動開梱)
私はこの問題を解決するためにインターネット全体を見てきました。誰かがこれに正しく答えて、その理由を説明できますか?どうもありがとう!
次のコードを見てください。
次のうち、2番目のステートメントについて正しいものはどれですか?
ステートメントは開箱を実行します
ステートメントは自動ラッピングを実行します。
ステートメントはオートボクシングを実行します。
プリミティブ型をラッパークラスオブジェクトに割り当てることができないため、エラーが発生します。
java - ハッシュテーブルの doublevalue() に関する混乱
- インライン
bal = ((Double)balance.get("John Doe")).doubleValue();
で の使用はdoubleValue
何ですか? (オブジェクトを double 値に変換することは知っています)が、これなしで実行するとプログラムは正常に実行されます。 - (私が間違っている場合は修正してください)
balance.get
ここで値の double オブジェクトを取得し、3434.34
その前に( double )ボックス化を解除して double 値の double オブジェクトに変換します。次に、doubleValue()
この double をオブジェクトとして扱う方法と理由3434.34
?????
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
なければならないかを知る必要があり、それらを読み書きする方法を推測します (しかし、それらはDouble
s によく似ています)。
それで、私は何をしますか?ありがとう!
haskell - シグナルの密集したツリー
リアルタイム信号を収集し、派生信号を計算し、生データと派生データの両方を循環バッファーに保存するため、最後の 100 万個のサンプルのみを保持します。
すべてのシグナルの現在の値をシリアル化する必要がある場合があります。だから私は次のようなものが必要です:
SignalBuffer
のシーケンスですSignalValue
。ボックス化されていない浮動小数点数の配列にすることができます。Haskell はFunctor
インスタンスを派生させることができるので、すべてからfmap
最後にフェッチし、構造体を渡してシリアライズすることができます。SignalValue
SignalBuffer
Aeson
SignalBuffer
新しいティックが到着したときにすべてのバッファに新しい値をプッシュできるように、循環バッファ API を実装するにはどうすればよいですか? メモリを節約したいので、ボックス化されていない配列を使用する必要があると思います。STUArray
変更可能なボックス化されていない配列 ( ?) を使用して、配列の更新がメモリに蓄積されないようにすることは有利ですか? この設定で可変配列を使用することはまったく可能ですか? 私は変化する準備ができてMyData
おりCurrentSignals
、仕事をするものは何でもします。
循環バッファを実装する方法を知っています。問題は、更新を にエレガントに適用する方法MyData
です。
みたいなことを考えている
一部の信号は、他の信号の「畳み込み」です (実際の畳み込みではなく、同様の種類の処理です)。シグナルのバッファーを更新するには、他のシグナルのバッファーにアクセスする必要があります。そのため、UpdateFunc はバッファー変更関数を受け入れて返しますMyData
。SignalValue
updateAllBuffers
次に「zip」D0 UpdateFunc
しMyData
て new を取得しますMyData
。
もちろんModifier
、自分のタスクに合ったものを使用する準備ができています-それは関数、モナド値などです.
java - Java コンパイラが null のボックス化解除を許可することがあるのはなぜですか?
例えば:
コンパイル時に失敗しますが、
実行時に (通常) 失敗します。ただ返そうとするとコンパイル エラーが発生するため、複数のパスがあり、それが潜在的に autoboxednull
であるとコンパイラに推測させる何かがあると思います。javac が同じエラーで両方のケースのコンパイルに失敗しないのはなぜですか?null
int