問題タブ [data-class]

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

null - データを設定できない可能性がある場合、データ クラス コンストラクターの値を null に設定する以外に良い方法はありますか

私は実用的な学習演習としてkotlinでレストクライアントを作成している状況にあり、最近これに反対しました:

問題はこれです.200が返された場合、「a」から「f」までを入力するデータがありますが、代わりに401または他のほとんどのステータスコードを取得した場合、「a」を入力するデータがありませんしたがって、私は上記の解決策を選択しました。ここでは、常に返されるステータス コードを null にしないように強制し、他のすべての値を null にデフォルト設定します。

ユーザーがステータスコードをチェックしないと、このデータが何らかの形で通過する可能性が常にあるため、デフォルトを "" や -1 などに設定するルートをたどりたくありません。

本当に情報がないことを伝えたいのですが、これでうまくいくようですが、もっと良い方法があるのではないかと思いました。

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

constructor - Kotlin のデータ クラスのプライマリ コンストラクターのローカル パラメーター

クラスに関しては、プライマリ コンストラクターでorキーワードを使用しないdataことは禁止されています。つまり、すべてのパラメーターが暗黙的にクラス プロパティに変換されます。ただし、各パラメーターをクラス プロパティに変換したくない場合があります。varval

したがって、私が見る限り、コンストラクター内でのみアクセス可能で、インスタンスの構築が完了した後に忘れられるパラメーターをプライマリ コンストラクターに渡す可能性はありません。これには正当な理由がありますか?

これを回避する唯一の方法は、クラスを使用しないdataか、非 var/val プレフィックス変数を許可するセカンダリ コンストラクターを使用することです。ただし、渡す必要のあるパラメーターが多数あるため、2 次コンストラクターはクラスを大幅に拡張します。もちろん、すべてのパラメーターを別のオブジェクトにラップすることもできますが、それは問題を別の場所に移すだけです。

それに対処するために推奨されるアプローチやパターンはありますか?