Já vi :=
usado em vários exemplos de código, mas nunca com uma explicação de acompanhamento. Não é exatamente possível pesquisar seu uso no Google sem saber o nome adequado para ele.
O que isso faz?
operators
colon-equals
Ciclone
fonte
fonte
:=
quando define algo, para separá-lo das alterações de variáveis regulares. De que linguagem de programação estamos falando?Respostas:
http://en.wikipedia.org/wiki/Equals_sign#In_computer_programming
Nota: eu encontrei isso pesquisando por
colon equals operator
fonte
colon equals operator
.colon equals operator
, faremos mágica no SEO do Google para tornar este o melhor resultadoÉ o operador de atribuição em Pascal e é freqüentemente usado em provas e pseudo-código. É a mesma coisa que
=
nas linguagens de dialeto C.Historicamente, os papéis da ciência da computação são usados
=
para comparações de igualdade e←
para atribuições. Pascal costumava substituir:=
a seta para a esquerda difícil de digitar. C foi em uma direção diferente e, em vez disso, decidiu pelos operadores=
e==
.fonte
Na linguagem digitada estaticamente, Go
:=
é a inicialização e a atribuição em uma única etapa. Isso é feito para permitir a criação de variáveis do tipo interpretado em uma linguagem compilada.fonte
Alguns idiomas usam
:=
para atuar como o operador de atribuição.fonte
Outra interpretação de fora do mundo das linguagens de programação vem de Wolfram Mathworld , et al:
Se A e B são iguais por definição (isto é, A é definido como B), então isso é escrito simbolicamente como A = B, A: = B ou às vezes A≜B.
■ http://mathworld.wolfram.com/Defined.html
■ /math/182101/appr-notation-equiv-versus
fonte
Esta é a sintaxe antiga (pascal) para o operador de atribuição. Seria usado assim:
Pode ser em outros idiomas também, provavelmente em um uso semelhante.
fonte
Em muitos livros de CS, ele é usado como o operador de atribuição, para diferenciar do operador de igualdade
=
. Em muitas linguagens de alto nível, porém, atribuição é=
e igualdade é==
.fonte
É como uma seta sem usar o símbolo menor que <= então como todo mundo já disse operador de "atribuição". Trazendo clareza para o que está sendo definido onde, em oposição ao operador lógico de equivalência.
Em matemática é como igual, mas A: = B significa que A é definido como B, uma barra tripla igual pode ser usada para dizer que é semelhante e igual por definição, mas nem sempre a mesma coisa.
De qualquer forma, aponto para essas outras referências que provavelmente estavam nas mentes daqueles que o inventaram, mas na verdade é apenas aquele plano igual e menos que igual foi tomado (ou potencialmente facilmente confundido com = <) e algo novo para definir a atribuição era necessário e isso fazia mais sentido.
Referências históricas: Eu vi isso pela primeira vez em SmallTalk, a linguagem de objeto original, da qual SJ da Apple apenas copiou a parte do Windows e BG da Microsoft diluiu ainda mais (single threaded). Eventualmente, SJ na NeXT tirou a segunda lição mais importante do Xerox PARC em, que se tornou o Objectivo C.
Bem, de qualquer maneira, eles apenas pegaram o operador de avaliação de dois pontos iguais do ALGOL 1958, que mais tarde foi popularizado por Pascal
https://en.wikipedia.org/wiki/PARC_(company)
https://en.wikipedia.org/wiki/Assignment_(computer_science)
https://en.wikipedia.org/wiki/Referential_transparency
fonte
Para VB.net,
um construtor (neste caso, Me = this em Java):
quando você cria esse objeto:
Então, independentemente da ordem dos parâmetros, esse objeto ABC tem A = 2, B = 3, C = 1
Então, sim, prática muito boa para que outros leiam seu código de forma eficaz
fonte
Dois pontos iguais foram usados em Algol e seus descendentes, como Pascal e Ada, porque é o mais próximo que o ASCII chega de um símbolo de seta para a esquerda.
A estranha convenção de usar igual para atribuição e duplo igual para comparação foi iniciada com a linguagem C.
No Prolog, não há distinção entre atribuição e teste de igualdade.
fonte
<-
como Haskell fez. Eles não estavam tentando se aproximar da seta para a esquerda com:=
, eles estavam usando o operador matemático 'é definido como': mathworld.wolfram.com/Defined.html:=
, eles teriam usado<-
.