問題タブ [null-check]
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.
actionscript-3 - nullに対するデフォルトのチェックをより良い方法で行うことができますか?
よくあることですが、次のようなものを書く必要があります。
これを行うためのより良い方法があるかどうか私は興味がありますか?私の主な懸念は、params["prizeLevel"]を2回記述しなければならないことです。
もちろん、これは次のような関数に抽出できます。
しかし、その後、私はこの検査をしたいところならどこからでもこの機能にアクセスできなければなりません。したがって、この問題を解決するための賢い方法があるかどうか疑問に思っています。たぶん、ある種のビットマジックの助けを借りて?それとも、プロトタイピング/動的なものがここで適用可能ですか?
私がこれまでに思いついた最善の解決策は、コードIDE内にマクロを作成して、特定のキーボードの組み合わせにこれを書き込ませることです。しかし、私は誰かがより良い考えを持っているに違いない。
null - nullをチェックして戻るか、null以外をチェックして続行する方が良いですか?
次の基本クラスが与えられます。
次のメソッドの実装のうち、test
プログラミングの実践に適しているのはどれですか?
約10年前に教授から思い出そうとする場合、ifステートメントのベストプラクティスは、偽よりも真である可能性が高い条件(後者)を持つことです。しかし、最近私はReSharperの試用版を使用しており、彼らの提案は前者です。メンバーはクラスのm_memberVariable
インスタンス化時に初期化され、クラスの存続期間中はnullではない可能性があります。
c# - C#にはJavaScriptと同様の操作がありますか|| セッター?
C#にはJavaScriptと同様の操作がありますか|| セッター?
たとえば、JavaScriptで、値がnullかどうかを確認してデフォルトを設定したい場合は、次のようにすることができます。
しかし、C#でこの機能が必要な場合は、次の方法を使用する必要があります。
私はこれがささいなことであり、物乞いが選択者になることはできないことを知っていますが、可能であれば、クレイジーなハックや拡張メソッドを含む答えを得るのは避けたいと思います。三項演算子を使用しても問題ありませんが、見逃した言語機能があるかどうかだけが気になりました。
アップデート:
素晴らしい答えがいたるところにありますが、J0HNとアントンが頭に浮かびました。C#は、上記の例のJavaScriptのように「偽の」値を実行しないため、??
オペレーターは空の文字列を考慮しません。
お時間を割いていただき、ありがとうございました。
c# - オブジェクトの null チェックを OR ステートメントの別の条件として含めることはできますか?
重複の可能性:
.NET で安全な && 短絡に依存していますか?
質問のタイトルを正しく表現する方法がわかりませんでしたが、1 行のコードで説明するのは非常に簡単です。
それをしてもいいですか?またはこれ:
java - null!=何かと何か!=nullの違い
Javanull != something
との間に違いはありますか?something != null
そして、違いがある場合は、どちらを使用する必要があり、その理由は何ですか?
java - javax.annotation.Nonnullとassert
メソッドのパラメーターにFindbugsとjavax.annotation.Nonnullを使用しています。
プライベートメソッドでは、通常、次のようなヌル性をチェックするためにアサート行を追加します
最新のNetbeansバージョン(7.3rc2)は、アサートチェックが不要であると報告しています(Nonnullアノテーションのため)。これがNetbeansのバグであるかどうかは完全にはわかりません。
@Nonnullアノテーションを指定したので、アサート行を削除できますか?
私が理解している限り、アノテーションは静的分析中にのみ使用されますが、assertが有効になっている場合は実行中にアクティブになるため、この2つは代替ではありません。
java - != null または !str.equals(null)? による Java 文字列 null チェック?
Javaでnullでない値をチェックする最良の方法は何ですか.
query != null
対 !query.equals(null).
どっちがいい?なぜ?
java - 「this」アクセスに対して発行されたnullチェック?
this参照 (プライベート メソッドのorフィールドなど) を介して独自のインスタンス フィールドにアクセスすると、生成された Android Dalvik バイトコードにはバイトコード命令が含まれます。object
int
iget
これは、別のオブジェクトのフィールドに (つまり、ポインター経由ではなく) アクセスするときに発行される命令と同じであるthis
ため、他のオブジェクトと自分自身を区別していないようです。バイトコードではこれは理解できますが、JIT はさらに多くのことを行うことができます。
Android のソース コードを確認したところ、このような場合 (つまり、this
. すでにnullチェックされたDalvikレジスタの基本ブロックでは削除されますが、(私にとっては)this
アクセスのために削除することもできるようです(たとえそれが基本ブロックの最初の命令であっても、または任意の命令であっても、this
できません) null であること)。
私は何が欠けていますか?セキュリティ/ランタイムのタイプセーフの理由ですか? それとも、単にソース コードを見落としているのでしょうか。VM (JIT)this
が際立った方法で処理できないのはなぜですか? this
(他のものと同じようにメモリアドレスであるため、ネイティブコードは明らかにできないことを理解しています。)
編集:私が見る限り、dvm で基本ブロックが終了するたびに、「既に null チェック済み」フラグがクリアされます。私が言っているのは、これを保持するレジスタの「すでにヌルチェック済み」フラグを1に事前設定できるということです(基本ブロック間の遷移中でも値をクリアする必要はありません)。