“: =”는 무엇을합니까?


111

:=여러 코드 샘플에서 사용 된 것을 보았지만 설명이 수반되지 않았습니다. 적절한 이름을 모른 채 Google에서 사용하는 것은 정확히 불가능합니다.

그것은 무엇을합니까?


11
어떤 언어로?
Beta

4
당신은 일반적으로 :=무언가를 정의 할 때 그것을 일반 변수 변경과 분리하기 위해 사용 합니다. 우리가 말하는 프로그래밍 언어는 무엇입니까?
svens

3
PL / SQL은 할당 용입니다. 그러나 다른 언어가 주어지면 그 대답이 사실이라고 보장되지 않습니다. 그렇다면 어떤 언어가 그 예였습니까?
앤드류

12
이와 같은 Google을 검색하려면 철자를 입력하고 따옴표로 묶으십시오. "colon equals"
Intelekshual 2011 년

3
Pascal이이 연산자를 가지고 있다고 생각합니다!

답변:


104

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

컴퓨터 프로그래밍 언어에서 등호는 일반적으로 수학에서 기호의 사용과 일치하는 값의 동등성을 테스트하는 부울 연산자 (예 : Pascal 또는 Eiffel에서) 또는 할당 연산자 (예 : C와 유사한 언어에서)를 나타냅니다. ). 전자를 선택한 언어는 대입 연산자를 표시하기 위해 콜론과 같음 (: =) 또는 ≔을 사용합니다. 후자를 선택하는 언어는 종종 이중 등호 (==)를 사용하여 부울 같음 연산자를 나타냅니다.

참고 : 다음을 검색하여 찾았습니다.colon equals operator


58
아이러니하게도이 답변은 이제를 검색 할 때 Wikipedia 위에 colon equals operator있습니다.
nighthawk454

6
계속 입력 colon equals operator하면 Google의 SEO에 마법을
걸고

47

Pascal 의 할당 연산자 이며 증명 및 의사 코드에서 자주 사용됩니다. =C-dialect 언어 와 동일 합니다.

역사적으로 컴퓨터 과학 논문 =은 평등 비교와 과제에 사용 되었습니다 . Pascal은 :=입력하기 어려운 왼쪽 화살표를 표시하는 데 사용 되었습니다. C는 다른 방향으로 갔고 대신 ===연산자 를 결정했습니다 .


25

정적으로 형식화 된 언어에서 Go := 는 한 단계로 초기화 및 할당됩니다. 컴파일 된 언어로 해석 된 것과 같은 변수 생성을 허용하기 위해 수행됩니다.

// Creates and assigns
answer := 42

// Creates and assigns
var answer = 42



0

이것은 할당 연산자에 대한 오래된 (파스칼) 구문입니다. 다음과 같이 사용됩니다.

a := 45;

아마도 비슷한 용도로 다른 언어로되어있을 수도 있습니다.


0

많은 CS 책에서 같음 연산자와 구별하기 위해 할당 연산자로 사용됩니다 =. 하지만 많은 고급 언어에서 할당은 =이고 평등은 ==입니다.


0

보다 작음 기호 <=를 사용하지 않는 화살표와 같으므로 모두가 이미 "할당"연산자를 말한 것과 같습니다. 동등성의 논리 연산자와 달리 어디에 설정되어 있는지 명확하게합니다.

수학에서 그것은 같음과 같지만 A : = B는 A가 B로 정의된다는 것을 의미합니다. 트리플 바 같음은 정의상 유사하고 같지만 항상 같은 것은 아니라고 말할 수 있습니다.

어쨌든 나는 그것을 발명 한 사람들의 마음에 아마도 다른 참조를 지적했지만 실제로는 평등이 같거나 같지 않다는 것입니다 (또는 잠재적으로 = <와 혼동 될 수 있음) 및 할당을 정의하는 새로운 것이 필요했습니다. 그것은 가장 의미가 있습니다.

역사적 참고 문헌 : 나는 처음으로 SmallTalk에서 원래의 객체 언어를 보았습니다. Apple의 SJ는 Windows 부분 만 복사하고 Microsoft의 BG는 더 멀리 떨어 뜨 렸습니다 (단일 스레드). 결국 NeXT의 SJ는 Objective C가 된 Xerox PARC에서 두 번째로 중요한 교훈을 얻었습니다.

어쨌든 그들은 나중에 Pascal에 의해 대중화 된 ALGOL 1958에서 대장 같음 지원 연산자를 가져 왔습니다.

https://en.wikipedia.org/wiki/PARC_ (회사)

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

할당은 일반적으로 변수가 수명과 범위 동안 다른 시간에 다른 값을 보유 할 수 있도록합니다. 그러나 일부 언어 (주로 엄격하게 작동하는)는 비 로컬 상태의 변경을 의미 할 수 있으므로 이러한 종류의 "파괴적"재 할당을 허용하지 않습니다. 목적은 참조 투명성을 강화하는 것입니다. 즉, 일부 변수의 상태에 의존하지 않지만 어느 시점에서든 주어진 매개 변수 입력 세트에 대해 동일한 결과를 생성하는 함수입니다.

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


0

VB.net의 경우

생성자 (이 경우 Me = this in Java) :

Public ABC(int A, int B, int C){
Me.A = A;
Me.B = B;
Me.C = C;
}

해당 개체를 만들 때 :

new ABC(C:=1, A:=2, B:=3)

그러면 매개 변수의 순서에 관계없이 해당 ABC 객체는 A = 2, B = 3, C = 1입니다.

그래서, 다른 사람들이 당신의 코드를 효과적으로 읽을 수있는 아주 좋은 방법입니다.


-1

Colon-equals는 ASCII가 왼쪽 화살표 기호에 도달하는 것과 비슷하기 때문에 Algol과 Pascal 및 Ada와 같은 하위 항목에서 사용되었습니다.

할당에는 같음을 사용하고 비교에는 이중 같음을 사용하는 이상한 관습이 C 언어에서 시작되었습니다.

Prolog에서는 할당과 동등성 테스트 사이에 차이가 없습니다.


왼쪽 화살표에 가깝게하려면 <-Haskell처럼 사용할 수 있습니다 . 그들은를:= 사용하여 왼쪽 화살표에 가까워 지려고하지 않고 수학 '다음으로 정의 됨'연산자를 사용했습니다. mathworld.wolfram.com/Defined.html
Variadicism

1
Pedant 경고 : <-Haskell에서 할당되지 않았습니다. Haskell에는 Pascal, Ada 등의 방식으로 파괴적인 할당이 없습니다. <-는 매개 변수 대체를위한 do-notation 구문의 일부입니다. 서브 루틴 호출에서 값을 매개 변수로 대체하는 프로세스와 더 유사합니다.
마이클 복원 Monica Cellio

1
@Michael 충분히. 네가 옳아. 내 잘못이야. 어쨌든, 왼쪽 화살표를 모방하려고한다면를 사용하지 않았을 :=것이고를 사용했을 것 <-입니다.
Variadicism
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.