web-dev-qa-db-ja.com

":="は何をしますか?

私は見た :=いくつかのコードサンプルで使用されていますが、説明はありません。適切な名前を知らずに、その使用をグーグルで検索することは正確に不可能です。

それは何をするためのものか?

105
Cyclone

http://en.wikipedia.org/wiki/Equals_sign#In_computer_programming

コンピュータープログラミング言語では、等号は通常、数学における記号の使用法と一致する値の等価性をテストするブール演算子(例:PascalまたはEiffel)、または代入演算子(例:Cのような言語)を示します。 )。前者を選択する言語では、多くの場合、コロン等号(:=)またはuseを使用して割り当て演算子を示します。後者の選択を行う言語では、二重等号(==)を使用してブール等値演算子を示すことがよくあります。

注:colon equals operatorを検索してこれを見つけました

98
drudge

これは、Pascalの代入演算子であり、証明や擬似コードでよく使用されます。 C方言言語の=と同じものです。

歴史的に、コンピューターサイエンスの論文では、同等の比較に=を、割り当てにを使用していました。 Pascalは:=を使用して、入力しにくい左矢印の代わりに使用しました。 Cは別の方向に進み、代わりに=および==演算子を決定しました。

44
John Kugelman

静的に型付けされた言語では Go:=は、1ステップでの初期化と割り当てです。コンパイルされた言語で変数のインタープリターのような作成を可能にするために行われます。

// Creates and assigns
answer := 42

// Creates and assigns
var answer = 42
24
Matias Forbord

プログラミング言語の世界以外からの別の解釈は、Wolfram Mathworldなどから来ています。

AとBが定義上等しい(つまり、AがBとして定義されている)場合、これはA = B、A:= B、またはA≜Bとして記号で記述されます。

http://mathworld.wolfram.com/Defined.html

https://math.stackexchange.com/questions/182101/appropriate-notation-equiv-versus

4
RBV

一部の言語では:=割り当て演算子として機能します。

4
Mike Lewis

それは、小なり記号<=を使用しない矢印のようなものです。つまり、誰もが既に「割り当て」演算子を言っているようです。等価性の論理演算子ではなく、どこに設定されているかを明確にします。

数学ではequalsに似ていますが、A:= BはAがBとして定義されていることを意味します。

とにかく私はおそらくそれを発明した人たちの心の中にあったこれらの他の参照を指しますが、それは本当にちょうどその平面が等しいかそれ以下であるかが取られた(または潜在的に簡単に混同される可能性があります= <)それが最も理にかなっています。

歴史的な参考文献:私は最初にSmalltalkでこれを元のオブジェクト言語で見ました。そのSJ AppleはWindowsの部分をコピーしただけで、MicrosoftのBGはそれらからさらに散らばりました(シングルスレッド)。 NeXTでXerox PARCから2番目に重要なレッスンを受け、Objective Cになりました。

とにかく、彼らは後にパスカルによって一般化されたALGOL 1958からコロンイコール補助演算子を取りました

https://en.wikipedia.org/wiki/PARC_(company)

https://en.wikipedia.org/wiki/Assignment_(computer_science)

通常、割り当てにより、変数はその存続期間とスコープ内のさまざまな時点でさまざまな値を保持できます。ただし、一部の言語(主に厳密に機能する)では、非ローカル状態の変更を暗示する可能性があるため、そのような「破壊的な」再割り当てを許可していません。目的は、参照の透明性、つまりいくつかの変数の状態に依存しないが、任意の時点で特定のパラメーター入力のセットに対して同じ結果を生成する関数を強制することです。

https://en.wikipedia.org/wiki/Referential_transparency

0
Master James

これは、代入演算子の古い(Pascal)構文です。次のように使用されます。

a := 45;

同様に他の言語でも使用されている可能性があります。

0
mklauber

多くのCSブックでは、等価演算子=と区別するために、代入演算子として使用されています。ただし、多くの高水準言語では、割り当ては=であり、平等は==です。

0
gailbear