JavaScript における Ruby の unless 文の同等
-
JavaScript で
unless
ステートメントを実装するためのユーザー定義関数を作成する -
JavaScript で
if-else
ステートメントを否定してunless
ステートメントを実装する
Ruby では、条件文は unless
規則に従いますが、ほとんどのプログラミング言語は if-else
条件を好みます。メリットも同様です。好みだけが各言語に組み込まれています。
Ruby、Perl、CoffeeScript など以外は、unless
ステートメントを使用します。
ここでは、私たちの場合、unless
の定義を使用して、一般的な if-else
ステートメントの適用を視覚化します。これは、if-else
ステートメントが unless
ステートメントのように動作するように構成することを意味します。
ドライブについては、unless
という関数を生成します。また、直接 if-else
を使用して unless
ステートメントの操作を実行します。
JavaScript で unless
ステートメントを実装するためのユーザー定義関数を作成する
ここで作成する関数は条件を取ります。また、その条件に基づいて、関数の充足可能性を推測する別のコールバック関数を生成します。
理解を深めるためにコード行を見てみましょう。
コードスニペット:
let unless = (condition, callback) => {
!condition && callback();
} let a = 10;
let b = 20;
unless(a > b, () => {console.log('A should be greater than B')})
出力:
ご覧のとおり、関数 unless
は条件を取ります。この場合、条件は a が b 未満
であるということです。
ただし、unless
関数は無効になり、条件を a>b
に設定すると、それを受け入れ、コールバック関数をトリガーして動作させます。しかし、一般的な if-else
ステートメントのシナリオによれば、条件が else
ステートメントに該当するため、コールバック関数をトリガーすることは想定されていませんでした。
JavaScript で if-else
ステートメントを否定して unless
ステートメントを実装する
この部分は、比較的把握しやすく、実装も簡単です。必要なのは、if
が else
のように機能し、else
が if
のように機能するように設定することです。
if
に適用される条件はすべて事前に無効化されるため、else
は自動的に定義されます。状況を示すためにコードフェンスを試してみましょう。
コードスニペット:
var a = 42;
var b = 10;
if (!(a > b)) {
console.log('Incorrect');
} else {
console.log('Correct');
}
出力: