一部のプログラミング言語では、次のように表示されます(例):
x := y
この:=
演算子は一般的に何と呼ばれ、何をしますか?
一部のプログラミング言語では、次のように表示されます(例):
x := y
この:=
演算子は一般的に何と呼ばれ、何をしますか?
これはPython3.8に登場する新しいオペレーターであり、実際にはBDFL GuidovanRossumの早期引退に関与していました。
正式には、演算子は「代入式」と呼ばれるものを許可します。非公式には、この演算子は「セイウチ演算子」と呼ばれます。
式を評価しながら割り当てを行うことができます。
したがって、この:
env_base = os.environ.get("PYTHONUSERBASE", None)
if env_base:
return env_base
次のように短縮できます。
if env_base := os.environ.get("PYTHONUSERBASE", None):
return env_base
https://www.python.org/dev/peps/pep-0572/#examples-from-the-python-standard-library
私は通常、それが割り当てを意味する擬似コードでそれをより多く見ます。したがって、x:= yは、「xの値をyの値に設定する」ことを意味しますが、x = yは、「xの値がyの値と等しいか」を意味します。
このシンボルは「becomes」と呼ばれ、IAL(後にAlgol 58と呼ばれる)とAlgol 60で導入されました。これは、変数に値を割り当てるためのシンボルです。x := y;
「xがyになる」と読みます。
割り当てに「=」ではなく「:=」を使用することは、数学的な面倒さです。そのような観点からすると、「x = x+1」は無意味です。他の現代の言語では、割り当てに左矢印を使用している可能性がありますが、それは多くの文字セットで(単一の文字として)一般的ではありませんでした。
Algol 68は、識別と割り当てをさらに区別しました。INT the answer = 42;
「答え」は42と同じように宣言されている(つまり、定数値である)と言います。「答え」ではINT the answer := 42;
、変数として宣言され、最初に値42が割り当てられます。
他にも+:=
、「プラスとなる」と発音されるなどの割り当て記号があります。x +:= y
xの現在の値にyを追加し、結果をxに格納します。
(スペースには意味がないため、アンダースコアをいじる必要はなく、識別子の「中に」挿入できます)
多くの言語は一般的な演算子を使用しています。通常、=
は変数の割り当て用に予約されており、単独の場合は数学的なコンテキストで表示しないでください。ただし、JavaやBashなどの一部の言語での同等性はテストされています==
=
PL / Iはとの両方を持っています(持っていましたか?):=
。=
割り当てと比較の両方に使用されます。コンパイラは、コンテキストに基づいて、どちらを意味するのかを判断しようとします。実際に割り当てを意味する場所で比較を行うことを決定した場合は、を使用:=
して割り当てを強制できます。
たとえば、x=y=0;
In C(1つの例)を考えてみましょう。これは、「0をyに割り当て、その結果(0も)をxに割り当てる」ことを意味します。
x = y == 0;
PL / Iでは、yを0と比較し、その比較のブール結果をxに割り当てることを意味します(つまり、 Cのようなものと同等です)。(PL / Iの設計者とは異なり、正気である)「xとyに0を割り当てる」ことを意味する場合は、x = y := 0;
(またはx := y := 0;
)を使用します。
:=「等しいに設定」を意味します構文を使用した割り当て
v:= exprは、変数«v»の値を式«expr»から取得した値に設定します。
例:X:=BXの定義をBの値に設定します