この問題のデザイン unless Perl

は、Perlプログラミング言語としてではなく、多くのプログラミング言語でデザイン if:

▶ Run
#!/usr/bin/perl

my $value;

if (!defined $value) {
    print 'value must be defined';
}

if を行う場合の条件はtrueを返します。

もののほか、デザイン if で逆デザイン unless. 体 unless運 場合はfalseを返します。 このことはこの作品と同じで、 が書かれたも unless:

▶ Run
#!/usr/bin/perl

my $value;

unless (defined $value) {
    print 'value must be defined';
}

見ればこの二つの例をまとめると、利用時 unless をコードを使用 構造物でなくて書 !)のコードは以上の3文字です。

またしています印刷する際に unlessに して 問題です。 想像することの必要性に充当し、コード unless. 現在一部 行動時の変数 $valueundef. の課題にして、アクションを実行するには の場合は逆の状況が $value はな undef. なかなか自然 この反応がこの状況が追加 else単位

▶ Run
#!/usr/bin/perl

my $value;

unless (defined $value) {
    print 'value must be defined';
} else {
    print 'value is defined';
}

でコードとこのコード簡単に書けるで悪いコードです。 このコードは修正い。 その代わりに、コードに書き直:

▶ Run
#!/usr/bin/perl

my $value;

if (defined $value) {
    print 'value is defined';
} else {
    print 'value must be defined';
}

残念ながら、場合には独自のコードを使 unless、それが誘惑しない変更するには if, とにかく書 else. まれていることが判の悪いコードです。

ことによってできたと考えられて書く能力 unless-else は一般的に間違っている言語でデザイン。 など デザインは失敗です。

unlessなどの if で使用できるPostfix形式:

▶ Run
#!/usr/bin/perl

my $value;

print 'value must be defined' unless defined $value;

ご利用の際はPostfix表記 unless の問題 unless-else が発生しません、この 版 else 一般的になります。

合計です。 は絶対に使わないでくださいデザイン unless ( $bool ) { ... }としている の悪化の可読性ます。 ご利用についての unless 、Postfixの変異体はこの厳しい勧告ます。 使用しない Postfix unless での協定のチームの味わいです。 著者の好むん 使用しない unless.

その他の記事