폰테이로스 엠 GO
소개
A primeira e vez que ouvi falar em ponteiros foi quando eu estava aprendendo minha primeira linguagem de programação na faculdade
C
, e eu lembro que foi algo que conseguiu deixar minha mente totalmente bugada e eu levei semanas para entender. De lá para cá esqueci totalmente como funcionavam mas em 2022 estudando o GO ouvi novamente falar de ponteiros e seguindo o Today I Learned resolvi escrever sobre para não esquecer mais폰테이로스
Quando fazemos uma atribuição de variável no GO for example:
x := 10
na verdade ele está fazendo uma associação e salvando o valor 10 em um endereço de memoria e ele salva isso como sendo o x, se quisermos pegar esse endereço em que o GO armazenou o valor 10 podemos usar o
&x
Para que o go mostre qual o endereço onde ele armazenou o 10com isso se declaramos uma nova variável por exemplo Y e atribuirmos a ela o valor de
&x
, significa que ela vai apontar para o mesmo endereço de memoria que Xé diferente de qunando por exemplo falamos que z := x
perceba nos logs que o valor de Y é igual ao endereço de memoria de X mas o endereço de memoria de Y é diferente do de X, enquanto que no Z onde fizemos uma atribuição direta o endereço de memoria de Z é exatamente o mesmo que X
Outra coisa interessante que podemos fazer é, depois de atribuir a Y o endereço de X podemos modificar o valor que Y está apontando com o operator de
*y
então podemos fazer o seguinte!Image description
Onde mudamos o valor de X usando apenas Y
E na vida real, quando vamos usar ponteiros?
semper que queremos que uma função mude o valor de uma variável que já temos, nesse caso podemos ver q ambas as funções de soma, a
somaSemPonteiro
이자형 somaComPonteiro
retornam o valor que receberam com 1 a mais, no exemplo é 11, porem só a soma com ponteiro reatribui o valor de x para 11 pois ela pega o local onde x está apontando e muda o valor que ele está apontando, onde antes era 10 파사 세르 11
Reference
이 문제에 관하여(폰테이로스 엠 GO), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yanpiing/ponteiros-em-go-4c21텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)