問題タブ [implicit]
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.
c++ - C++のコンストラクターでの数値型の暗黙的なキャストの防止
次の形式のコンストラクターがあります:
MyClass(int a、int b、int c);
そしてそれはこのようなコードで呼び出されます:
MyClass my_object(4.0、3.14、0.002);
このdoubleからintへの自動変換を防止するか、少なくともコンパイル時に警告を受け取りたいと思います。
この場合、「explicit」キーワードは機能しないようですよね?
c# - C#で暗黙的および明示的な演算子を使用する必要があるのはいつですか?
これらの演算子の使用法は何ですか?
scala - Scalaで複数の入力を持つ暗黙をどのように使用できますか?
たとえば、次のことが暗黙的に適用される式を作成するにはどうすればよいですか。
ありがとう
c++ - C++、暗黙の変換/コンストラクターはどのように決定されますか?
C ++は、オブジェクトの数レベルの深さの暗黙的な変換/構築をどのように決定しますか? 例えば:
可能なすべての変換のツリーを作成し、適切な端末を選択しますか? 他の何か?ありがとう
scala - Option[Object]をOption[Int]に暗黙的に変換します
java.lang.objectを返すレガシーJavaコードを使用しています。私はそれを関数に渡し、そのようにいくつかの暗黙の変換を行いたいと思います:
技術的には続行しますが、同じエラーが発生し続けます。予期されたInt、Option[Object]が見つかりました。ここでは、問題の焦点を絞ったスナップショットを示します。
暗黙の操作をどのように間違えましたか?毎回「asInstanceOf」を書く代わりに、それが私のために変換を行うことを望んでいました。
python - Matplotlibを使用して陰方程式をプロットすることは可能ですか?
Matplotlibで(f(x、y)= g(x、y)の形式の暗黙の方程式(例:X ^ y = y ^ x))をプロットしたいと思います。これは可能ですか?
.net - チェックを伴う明示的な動作と暗黙的な動作
質問の仕方がよくわかりませんが、次の状況についてどう思いますか、どの状況を好むか知りたいです。
私たちは、winforms を使用したクライアント サーバー アプリケーションで作業しています。また、別のフィールドに入力すると自動的に計算されるいくつかのフィールドを持つコントロールがあります。したがって、ユーザーが入力すると、別のフィールド、おそらくより多くのフィールドの自動入力が決定されるフィールド通貨があります。
ユーザーが通貨フィールドに値を入力すると、ユーザーが入力した文字列に基づいてキャッシュから Currency オブジェクトが取得されます。入力された通貨がキャッシュ内に見つからない場合、ヌル参照がキャッシュ オブジェクトによって返されます。さらに、アプリケーション層に通貨に基づいて他のフィールドを計算するように要求すると、null 通貨が指定された場合、null 固有のフィールドが返されます。このように、デフォルトの暗黙的な動作は、すべてのフィールドをクリアすることです。これは予想される動作です。より明確にするために、ユーザーが「利用できない通貨」を入力すると、もちろん通知されますが、入力された通貨に依存するフィールドもクリアする必要があります。これは、特定のコントロール値を null に設定することによって行われます。
私が明示的な実装と呼ぶのは、 Currency オブジェクトが null であることを確認することです。この場合、依存するフィールドは明示的にクリアされます。
後者のバージョンの方が明確で、エラーが発生しにくく、テストしやすいと思います。しかし、それは一種の冗長性を意味します。以前のバージョンは明確ではなく、テストで表現されていないアプリケーション層からの特定の動作を暗示しています。たぶん下位層のテストで、下位層を変更する必要が生じた場合、null 通貨が与えられた場合に何か他のものを返す必要がある場合、動機がないというだけのテストが障害になるとは思いません。上位層にバグを導入。
皆さんはどう思いますか?
scala - この Scala メソッドの明示的な呼び出しにより、暗黙的に解決できるのはなぜですか?
このコードがコンパイルに失敗するのに、指定された行のコメントを外すと正常にコンパイルされるのはなぜですか? (私は毎晩 Scala 2.8 を使用しています)。明示的に呼び出すとstring2Wrapper
、その時点から暗黙的に使用できるようになります。
編集:Martin Oderskyのコメントへのポインタを含む、これまでの回答に感謝します。
「明示的な結果の型のない暗黙の変換は、独自の定義に続くテキストでのみ表示されます。そのようにして、循環参照エラーを回避します。」
1) 「循環参照エラー」の危険性とは何か、および 2) 明示的な呼び出しが違いを生むのはなぜですか?
sql-server - SQL Server:チャンク削除はまだトランザクションログをいっぱいにします。失敗すると、すべての削除がロールバックされます-なぜですか?
これが私のシナリオです。Log4Netからのレコードを(MSMQ経由で)保持するテーブルを持つデータベースがあり、それをLoggingと呼びましょう。dbのリカバリモードはSimpleに設定されています。トランザクションログは気にせず、ロールオーバーできます。
sp_spaceusedのデータを使用して、特定のサイズのしきい値に達したかどうかを判断するジョブがあります。しきい値を超えた場合、サイズをそのしきい値のxパーセントに下げるために削除する必要のある行数を決定します。(余談ですが、行数と平均サイズの概算を取得するためにexec sp_spaceusedを使用していますが、それが最善の方法であるとは確信していません。しかし、それは別の問題です。 MyLogTable
)TRUE
次に、基本的にこれを行うsprocへの呼び出しをループすることにより、削除をチャンク化しようとします(たとえば、一度に5000)。
削除する必要があるものを削除するまで。
問題は次のとおりです。削除する行がたくさんある場合、トランザクションログファイルがいっぱいになります。走ることで成長するのを見ることができます
私が困惑しているのは、ジョブが失敗すると、削除されたすべての行がロールバックされることです。言い換えると、すべてのチャンクが(どういうわけか)暗黙のトランザクションでラップされているように見えます。
暗黙のトランザクションを明示的にオフに設定し、各DELETEステートメントをBEGINおよびCOMMIT TRANでラップしようとしましたが、役に立ちませんでした。削除されたチャンクがすべて成功するか、まったく成功しません。
簡単な答えは、ログファイルを、削除する可能性のある最大数のレコードを処理するのに十分な大きさにすることですが、それでも、これが単一のトランザクションとして扱われるのはなぜですか。
簡単なことを見逃してしまったら申し訳ありませんが、ログファイルの増加やリカバリモードなどに関する投稿をたくさん見てきましたが、これがわかりません。
もう1つ、ジョブが失敗すると、ログファイルは約95〜100%の状態でしばらくの間、ドロップバックする前に保持されます。しかし、私が実行した場合
使用率は約5%に戻ります。
TIA。