私は:=
いくつかのコードサンプルで使用されているのを見てきましたが、付随する説明はありません。それの適切な名前を知らずにその使用をグーグルすることは正確には不可能です。
それは何をするためのものか?
:=
、何かを定義するときに、それを通常の変数の変更と区別するために使用します。どのプログラミング言語について話しているのですか?
私は:=
いくつかのコードサンプルで使用されているのを見てきましたが、付随する説明はありません。それの適切な名前を知らずにその使用をグーグルすることは正確には不可能です。
それは何をするためのものか?
:=
、何かを定義するときに、それを通常の変数の変更と区別するために使用します。どのプログラミング言語について話しているのですか?
回答:
http://en.wikipedia.org/wiki/Equals_sign#In_computer_programming
コンピュータプログラミング言語では、等号は通常、数学での記号の使用法と一致する値の等価性をテストするブール演算子(PascalやEiffelなど)、または代入演算子(Cのような言語など)を示します。 )。前者の選択を行う言語は、多くの場合、コロン演算子(:=)または≔を使用して割り当て演算子を示します。後者の選択を行う言語では、しばしばブール等号演算子を示すために二重等号(==)を使用します。
注:私はこれを検索して見つけましたcolon equals operator
colon equals operator
たときにWikipediaより上になりました。
colon equals operator
、GoogleのSEOに魔法をかけてこれを最高の結果にします
これはPascal の代入演算子であり、証明や疑似コードでよく使用されます。=
C方言言語と同じです。
歴史的に、=
平等の比較と←
割り当てに使用されたコンピューターサイエンスの論文。入力:=
しにくい左矢印の代わりにPascalが使用されていました。Cは別の方向に進み、代わりに=
and ==
演算子を決定しました。
静的型付け言語では、Go :=
は1つのステップで初期化と割り当てを行います。これは、コンパイルされた言語で変数のインタープリターのような作成を可能にするために行われます。
// Creates and assigns
answer := 42
// Creates and assigns
var answer = 42
一部の言語では:=
、代入演算子として機能します。
プログラミング言語の世界の外からのもう1つの解釈は、Wolfram Mathworldなどから来ています。
AとBが定義によって等しい場合(つまり、AがBとして定義されている場合)、これは記号でA = B、A:= B、または場合によってはA≜Bとして記述されます。
小なり記号<=を使用しない矢印のようなもので、誰もが「代入」演算子をすでに言っているように。等価の論理演算子とは対照的に、どこに何が設定されているかを明確にします。
数学ではそれはイコールのようですが、A:= BはAがBとして定義されていることを意味します。三重バーのイコールは、定義によって類似していて等しいと言いますが、常に同じというわけではありません。
とにかく、私はおそらくそれを発明した人々の心にあったこれらの他の参照を指摘しますが、それは実際には、等しいか等しい以下の平面が取られた(または= <と簡単に混同される可能性がある)だけであり、割り当てを定義するための新しい何かが必要であり、それは最も理にかなっています。
歴史的参照:最初にこれをSmallTalkで元のオブジェクト言語に見ました。AppleのSJはWindowsの部分のみをコピーし、MicrosoftのBGはそれらからさらに細かくされました(シングルスレッド)。最終的にNeXTのSJは、Xerox PARCから2番目に重要なレッスンを受講し、Objective Cになりました。
とにかく、彼らは後にパスカルによって普及したALGOL 1958から結腸と等しい助言演算子を採用した
https://en.wikipedia.org/wiki/PARC_(company)
https://en.wikipedia.org/wiki/Assignment_(computer_science)
通常、割り当てにより、変数はその存続期間とスコープのさまざまな時点で異なる値を保持できます。ただし、一部の言語(主に厳密に機能する)では、非ローカルな状態の変更を意味する可能性があるため、このような「破壊的な」再割り当てを許可していません。目的は、参照透過性、つまり一部の変数の状態に依存しない関数を強制することですが、任意の時点で特定のパラメトリック入力のセットに対して同じ結果を生成します。
コロンイコールは、ASCIIが左矢印記号に到達するのと同じくらい近いので、アルゴールとその子孫(パスカルやエイダなど)で使用されていました。
C言語では、代入に等号を使用し、比較に二重等号を使用するという奇妙な規則が始まりました。
Prologでは、代入と同等性テストの間に区別はありません。
<-
ハスケルのように使うことができたでしょう。彼らは、で左矢印に近づこうとしていませんでし:=
た。数学の「is defined as」演算子を使用していました:mathworld.wolfram.com/Defined.html
:=
であろう、彼らは使用したであろうという点が残ってい<-
ます。