1. ホーム
  2. スクリプト・コラム
  3. パール

Perlにおけるtrueとfalseの徹底研究

2022-01-03 08:16:29

Perlでは、真理値とは自明なもの、つまり何でも真理値を計算できるものと考え、真理値を実用的な方法で定義しています。つまり、ある実体の真理値はその実体の型に依存します。

Perlが他のコンピュータ言語と違うのは、Perlは言語学者が作った言語であり、文脈なしでは意味をなさないので、Perlの真理値はスカラー(スカラー$は英語の配列@と同様、単数対複数、本対本)で計算できることです。books、現実世界での真理値は単数だろうからスカラー)、それ以外は行わない。 その他、型の強制変換(例えばPythonのint('42')は数字を含む文字型をint型に、Javaの(int) 'd' は文字型を整数に変換)などは行わない。

スカラーの各種値については、以下のようなルールがある。

文字型。文字型: "" と "0" を除くすべての文字が真となる。
数字:0を除くすべての数字に対してtrueを返す
参照型: すべての参照に対して真 (すべての参照はアドレスを持つオブジェクトを指します。アドレスは定義されていなければならないので、決して 0 にはなりません)
未定義:未定義の値はすべて偽となる

次の例は、Perlにおけるtrueとfalseの概念を理解するのに良い方法です。

コピーコード コードは以下の通りです。

0 # will convert to the string "0", so false 
1 # Will convert to the string "1", so true 
100 - 100 # 100-100 equals 0, which will be converted to the string "0", so false 
0.00 # equal to 0, which will convert to the string "0", so false 
"0" # string "0", so false 
"" # This is the empty string, so it is false 
"0.00" # That is, it is not "" and it is not "0", so it is true 
"0.00" + 0 # Forced conversion by +, the result of the calculation is 0, so it is false 
\$a # A reference to the scalar $a, so true, even if $a is false. 
undef() # is a function that returns an undefined value, so it is false