問題タブ [coercion]
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.
haskell - unsafeCoerced 値と一緒に使用すると間違った値を返すことを示す
私は と を試していunsafeCoerce
ましたが、驚くべき動作を見つけました (とにかく私にとって)。Int8
Word8
Word8
0 ~ 255 の範囲の 8 ビットの符号なし数値です。Int8
-128..127 の範囲の符号付き 8 ビット数です。
どちらも 8 ビットの数値であるため、相互に強制しても安全であると想定し、8 ビットの値を符号付き/符号なしのように返すだけです。
たとえばunsafeCoerce (-1 :: Int8) :: Word8
、値は 255 になると予想しWord8
ます (signed int の -1 のビット表現は unsigned int の 255 と同じであるため)。
ただし、強制を実行するとWord8
、動作が奇妙になります。
show x
ここに戻る方法がわかりません"-1"
。を見るとmap show [minBound..maxBound :: Word8]
、 の可能な値はありませWord8
ん"-1"
。また、型が変更されていなくても、数値に 0 を追加すると動作がどのように変わりますか? 奇妙なことに、影響を受けるのはクラスだけであるようにも見えますShow
-私のShowType
クラスは正しい値を返します。
最後に、コードfromIntegral (-1 :: Int8) :: Word8
は期待どおりに動作し、255 を返し、show
. このコードは、コンパイラによってノーオペレーションに削減できますか?
この質問は、タイプが ghc で低レベルでどのように表現されるかについての好奇心からであることに注意してください。私は実際に自分のコードで unsafeCoerce を使用していません。
r - C/C++ コードから「自然強制」ロジックにアクセスする
unlist
またはを呼び出すc
と、型はすべてを表すことができる最小の型に昇格されます。
C/C++ コードからこのロジックにアクセスするにはどうすればよいですか?
c
との C ソースを探したところ、と( )unlist
の両方に次のコードが見つかりました。do_c_dflt
do_unlist
main/bind.c
data
タイプの変数は、強制ロジックを定義しているように見えるBindData
ルーチンによって計算されます。AnswerType
ただし、型のBindData
宣言は inbind.c
のみです。
だから:Rの一般的な強制ロジックはどこかにエクスポートされていますか、それともコードをコピーして貼り付けなければなりbind.c
ませんか?(ネタバレすみません…)
ruby - .round(1)以外に、Rubyで整数を浮動小数点に強制するより良い方法はありますか?
タイトルで質問が言っていることだけです。私は整数のペアを持っています。それを浮動小数点に変換して、浮動小数点演算を実行できるようにしたいと考えています (適切なパーセンテージを取得するため)。
現在、私のコードは次のようになっています。
failure_and_run_count 内の int を浮動小数点に変換するより良い方法があることを教えてください。
multiple-inheritance - Coqの致命的な死のダイヤモンド
かなり単純な型階層を作成しようとしています。最小限の作業例を次に示します。
その最後の強制により、次の警告が生成されます。
実際、R12
to R0
(またはSortclass
) からの型強制は 2 つの異なるパスを取ることができます。そして、Coqが一般的なケースでこれを許可しない理由を理解しています. だって...どれが使われるの?
ただし、この場合、両方のパスによる強制がまったく同じR1_0 (R12_1 r12)
であることを示すことができます。R2_0 (R12_2 r12)
しかし、それでも、次の一見有効な公理を追加することはできません。
質問:では、これで問題ないことを Coq に納得させる方法はありますか?
actionscript-3 - 1067 : theplayclass 型の値を関連のない型 main に暗黙的に強制します
スコアを表示するゲームオーバー画面を作成したいので、助けてください。ただし、エラーが発生して、スコアを theplayclass.as から thegameoverclass.as に転送できません。エラーを発生させずに値を別のムービークリップに渡す方法はありますか?
このウェブサイトからソースコードを参照します: http://www.emanueleferonato.com/2008/12/17/designing-the-structure-of-a-flash-game-as3-version/
ここにエラーがあります
C:\Users\xxx\Downloads\Migrate\test\theplayclass.as、54 行目、41 列目 1067: theplayclass 型の値が関連のない main 型に暗黙的に強制されています。
main.as
theplayclass.as
thegameoverclass.as
ocaml - 強制タイプの省略レコード
OCaml でレコード型を強制できないのはなぜですか? のような基本型は正常にint
動作します。
M
以下は、 moduleに含める基本モジュールを構築する例ですA
。M.t
は で省略されたタイプですA
。M.t
ある限りint
、私はできますA.t' :> M.t
。に変更すると{i : int}
、コンパイラはサブタイプではないと言います。これには非常に具体的な理由があると思いますか?
トップレベルで:
r - for ループの as.Date が予期せず実行される
for ループ内でのこの (確かに非正統的な) 使用がas.Date
予期しない結果をもたらすのはなぜですか?
次の日付ベクトルがあります。
もちろん、標準の日付形式で取得するには、次を使用できます
for
しかし、スクリプトのコンテキストでは、ループを使用したかったのです。