Excelente explicação. Ganhei 20 minutos de conhecimento e didática com uma temática que é difícil de compreender! Obrigada!
@videosemusica7962
Жыл бұрын
Em termos de programação esse é o professor mais didático que já vi, explica tudo pausadamente e de uma forma tão simples que consigo entender facilmente a mensagem passada, continue assim, parabéns!!!
@lucasmaciel4527
4 ай бұрын
Grande aula, professor!!
@zotarelli91
4 ай бұрын
Wesley explicando é muito didático, eu estudei e executei algumas manutenções em códigos com ponteiros em 2011 e 2012.. Agora estou fazendo curso e lembrei o quão difícil foi naquela época aprender kkk.. obrigado pela explicação 🫂
@itamarribeiro9325
Жыл бұрын
Muito boa explicação, principalmente no uso prático
@mailsonmacedo0
Жыл бұрын
Ótima explicação de ponteiros!
@betocr1
2 жыл бұрын
Se é loco, que vídeo massa. Parabéns
@CaioCesarPS
Жыл бұрын
Eu já tinha entendido um pouco como funcionava o ponteiro mas com esse video ficou muito mais claro. valeu
@joaopacheco357
2 жыл бұрын
Vlw man, manjava de ponteiro mas queria entender melhor como lidar com eles em GO, foi super útil !!
@joseduarte3489
Жыл бұрын
ótimo video!
@matheuspolli6710
2 жыл бұрын
Me senti voltando pro colégio uns 23 anos atrás. Que saudade de fazer coisas simples assim. Parabéns pelo trabalho.
@EvertondeCastrofatec
11 ай бұрын
Valeu fullcycle
@danilokodavara9085
2 жыл бұрын
Show de bola !! Na faculdade eu penava para entender o conceito de ponteiro. Aqui em poucos minutos voce ja conseguiu sintetizar de maneira magnfica. Parabens Wesley.
@cristoferportela8892
3 жыл бұрын
Parabens a única pessoa no mundo que foi capaz de fazer eu entender que ponteiros tem alguma utilidade além de complicar a vida... sabia como fazer, só não sabia a utilidade disso
@WaldirBorbaJunior
3 жыл бұрын
Nem quando programava em C eu entendia direito ponteiro. Agora TUDO fez sentido. GO GO 4ever.
@leo4berbert
2 жыл бұрын
Muito bom. Parabéns!!!!
@gbauso
2 жыл бұрын
Que didática man, congrats
@jorgeluismiranda91
3 жыл бұрын
Valeu Carinha! Estou estudando Golang, voce foi quem INVOCOU este VUDU!!! Desenvolvia Game Didático com C++(minha Formação). eE quanto a Ponteiro Criei um Game Didático em C++ com Ponteiro, agora vou fazer em Golang . o game é " A Festa do Asterisco". Valeu!!!
@jasonloureiro7095
Жыл бұрын
Sempre a melhor explicação, parabéns a equipe FullCycle!
@denisfeliciano6784
Жыл бұрын
Excelente aula e didática, parabéns Wesley!!
@alec1o
2 жыл бұрын
Eu programo em c# e só queria aprender c++ por causa do ponteiro. Eu amo como os ponteiros funcionam e fiquei feliz sabendo que o GO Lang usa este recurso. No c# algo mais parecido com ponteiro é . estou aprendendo todo o curso e praticando. obrigado por compartilhar o seu conhecimento com nos meros iniciantes.
@eduardosalles9212
Жыл бұрын
é usado pra re-atribuição das variáveis
@fah_ds
2 жыл бұрын
Espetacular cara... coisa que na faculdade geralmente professores n tem tanto tato para explicar, vc deixou bem claro, vlw mano!!!
@trandreluis
2 жыл бұрын
Excelente explicação!
@prosperarsemlimite_
Жыл бұрын
Iniciando em Go Lang em 2023, Como fica tranquilo de aprender com essa didática
@leo_ffranco
3 жыл бұрын
Rapaz, aí tu salvou em!!!
@nandomax3
3 жыл бұрын
Parei de estudar C quando cheguei em ponteiros e struct. Foi quando fui pra python, que trabalhar de forma mais fácil com classes . Bom que o Go me fez retomar os estudos
@lucasaster564
Жыл бұрын
Aulas e didática incrível, muito obrigado !
@katianemiranda1231
2 жыл бұрын
Showw
@carolinegh601
2 жыл бұрын
Parabéns, Wesley. Sensacional!
@jardelcardoso9984
3 жыл бұрын
Wesley explicação simples e objetiva, muito bom
@leandrowx1
3 жыл бұрын
Parabéns. Muito bem explicado.
@diogolimaaoficial4519
3 жыл бұрын
Show!
@maxmelodia
3 жыл бұрын
Gostei.
@Lelemirai
4 ай бұрын
Muito obrigado. Excelente explicação. Fiquei com uma dúvida, mas vou testar eu mesmo aqui. A dúvida e: caso eu tenha 2 instâncias do mesmo struct e chamar o andou() alterando o nome, vai alterar nas duas instâncias ou apenas em uma? Vou testar e depois volto aqui pra comentar o resultado. Muito obrigado mais uma vez.
@Lelemirai
2 ай бұрын
Altera em 1 instância apenas 👍
@alexandrejastrow8454
3 жыл бұрын
Ponteiro é moleza, foda msm e sincronização de threads em c, sem da problema
@luciusstark
Жыл бұрын
Verdade. Até desenhando fica complicado. Quando acha que entendeu, alguma coisa dá errado. hauahuahuah
@marcelomagalhaes6619
2 жыл бұрын
que o programa fica mais leve com ponteiro dá pra entender fácil, mas essas funcs que usam ponteiros mudando valores sem usar retun não poderiam ser consideradas funções sujas e assim pecar no entenduimento do código já que de qualquer lugar pode-se mudar o valor de qualquer coisa?
@RafaelRicardo90
2 жыл бұрын
Não é nada sujo, isso é bem prático na verdade, principalmente quando utilizamos funções recursivas onde se manipula os valores de uma ou mais variáveis, vc evita ter que ficar atribuindo o valor manipulado sempre de volta pra variável, sendo que recursivamente vc poderia nem ter chego ao trecho do código onde a variável é atribuída, gerando um "problema" de ter que ficar devolvendo o valor recursivamente. Na questão de mudar de qualquer lugar, vc não tá mudando de qualquer lugar, vc está explicitamente chamando uma função que tem sua assinatura o recebimento de ponteiro, logo vc sabe o que está acontecendo ali.
@luciusstark
Жыл бұрын
Não é porque você usa ponteiros que nunca usará return. Um bom exemplo disso é o uso de "encoding/json". Por exemplo: func (a *Authentication) toObject(data []byte) error { return json.Unmarshal(data, a) } var credencial Authentication err := credencial.toObject(jsonData) Apenas não compreendi ao certo o que quis dizer com "funções sujas", se foi para expressar complexidade por efeitos colaterais (side-effects), você tem razão. Dessa forma, é crucial ter cautela ao usar o ponteiro, pois, se usado inadequadamente, pode resultar em código de difícil compreensão e manutenção, uma vez que pode ser difícil acompanhar onde e quando o estado está sendo alterado.
@GustavoRodrigues-le3zw
3 жыл бұрын
Ótimo vídeo!
@paulosumemo
3 жыл бұрын
Wesley é Top
@hugomarinheiro5330
3 жыл бұрын
Olá Wesley, sabendo você de php, e em php também pode passar um & e o valor sai alterado, pois foi passado por referência, qual é a vantagem de usar o ponteiro do go? Ou é a mesma coisa sem o *? Abraço
@luciusstark
Жыл бұрын
Entendo que a pergunta foi há um ano, mas responderei da maneira mais curta e elucidativa possível: Em Go, os parâmetros recebem os valores em cópia. Isso quer dizer que: a := 10 add(a, 1) // soma "a" + 1 A variável "a" foi passado por valor (aka. Pass by Value). Outra expressão que denota o mesmo conceito e esclarece ainda mais a ocorrência, é o termo "Pass by Copy", que diz que o "valor de 'a' foi passado em cópia" para a função "add". Ou seja: a := 10 fmt.Println(add(a, 1)) // imprimirá 11 fmt.Println(a) // imprimirá 10 Isso acontece porque "a" não foi alterado, o que foi alterado é a cópia dele que residiu no escopo da função "add" e quando ela retorna (ou seja, acaba), os valores do escopo dela são descartadas. Para efetuar uma mudança em "a" e não em sua cópia, é preciso utilizar o ponteiro. Ficando desta forma: a := 10 add(&a, 1) Em outros cenários que se usa estruturas, a visualização do código muda um pouco, mas o conceito permanece: a := Soma{ operando: 10 } func (s *Soma) add(valor int) { s.operando += valor } a.Soma(1) O uso de "*Soma" faz com que o valor da estrutura instanciada em "a" seja alterada. Você pode até usar "Som" (sem o asterisco - neste caso, sem o ponteiro), mas o efeito não satisfará porque "a.operando" somente será 11 durante a execução do método "add()"; como falei antes, assim que ele terminar sua execução, o valor será descartado e "a" voltará para o valor original, o estado que era antes do "add" ser chamado. Tentei explicar a diferença entre o efeito de "Pass by Value" (esse mesmo termo é chamado também de "Pass by Copy") e o "Pass by Reference".
@luciusstark
Жыл бұрын
Gostaria de complementar com uma coisa: Em Go, não existe Pass by Reference como existe em C, C++, Java, etc. A explicação que fiz acima sobre o efeito de modificação do valor original, a linguagem Go ainda utiliza o conceito "Pass by Value" para dar efeito "Pass by Reference". Quando você passa um ponteiro para uma função em Go, a função ainda recebe uma cópia do ponteiro. Isso significa que é criado um novo ponteiro que aponta para o mesmo local de memória da variável original. Portanto, ao modificar o valor ao qual o ponteiro aponta, as alterações serão refletidas na variável original porque ambos os ponteiros (o original e a cópia) apontam para o mesmo local de memória. Outras terminologias que o pessoal costuma utilizar é chamar de "valor direto" para referir-se ao "endereço de memória" da variável: a := 10 fmt.Println(&a) // imprimira um valor hexadecimal, algo como 0xc0000160a0 (foi demonstrado no vídeo em 6:58). O valor "0xc0000160a0" é o valor direto. Também existe o termo "valor indireto" que é o valor que o ponteiro aponta, neste caso, do exemplo, é o inteiro 10.
@reneperez5589
7 ай бұрын
@@luciusstark Excelente explicação amigo. Apenas fazendo uma analogia, seria como trabalhar como uma linguagem orientada a objetos, fazendo uso do THIS. Eu posso ter uma variável no scopo da minha classe, e outra variavel com o mesmo nome dentro de um método. O que tornaria os valores diferentes em ambas as variáveis, seria a utilização do THIS, para acessar a variável declarada no scopo da classe.
@michelbernardo6883
3 жыл бұрын
Primeiro.
@artu_almeida
2 жыл бұрын
entao resumidamente, vc acessa valor da memoria e seta valor na memoria atraves de ponteiros, mas funcao no Carro, nao era só retornar o valor inves de usar o ponteiro? kkk isso q fazemos é pra ganhar performance? nossa cara... na faculdade ponteiros em c pra mim foi um pesadelo, comecei minha carreira com java, me livrei deles e agora estou estudando golang e me deparo com ponteiros, eu ja tava querendo desistir, ainda bem q encontrei esse video
@natanael4883
2 жыл бұрын
É que nesse exemplo parece ser inútil usar ponteiro pois ele quis mais explicar o conceito. Mas se vc importa um pacote que tem um tipo de função que recebe um valor externo e retorna uma variável, o ponteiro é interessante para fazer a substituição e deixar o código mais clean tb
@luciusstark
Жыл бұрын
Sim, o uso de ponteiros é para fins de desempenho e modificação no valor original e não em sua cópia. No caso da função Carro, você está correto. Porém, entende-se que a prova de conceito apresentado neste vídeo serve somente para entender o funcionamento do ponteiro e não a sua utilidade. O uso de ponteiros ou valores ainda é comumente confuso para uma certa porção de desenvolvedores. Em geral, usar os ponteiros é útil quando você quer modificar o valor original, evitar cópias desnecessárias de dados imensos ou implementar estruturas de dados dinâmicas como listas encadeadas ou árvores. Usar valores é preferível quando você quer evitar efeitos colaterais, trabalhar com tipos simples ou pequenos, ou garantir a imutabilidade dos dados. Muitos são educados que a linguagem Go usa o conceito "Pass by Value" e quando estuda sobre ponteiros, acham que outro conceito é usado; sendo que, na verdade, Go ainda utiliza "Pass by Value" para dar efeito de "Pass by Reference". Acontece que a cópia do argumento é o endereço de memória (&var) e não o valor em si (*var), por ser cópia, você tem dois ponteiros que apontam para o mesmo valor. Ou seja, é melhor você ter uma cópia de endereçamento de memória que aponta para um dado imenso do que copiar esses dados.
Пікірлер: 51