2
respostas

Solicitação de conselhos para entender melhor programação.

Olá, Gostaria de saber se vocês podem aconselhar algum material legal pra se aprodundar em linguagem de programação. Eu vejo que os frameworks junto com os editores facilitam bastante o trabalho. Mas eu fico encucado com umas coisas que aparecem no código, como algumas declarações, como por exemplo quando a gente tipa uma variável. Dos tipos básicos quando a gente chama uma String precisamos usar a letra maiuscula, como se tivesses chamando uma classe que recebe um texto, e quando vamos declarar um int, um double, bool, fazemos isso com letra minúscula. Por que a String é na verdade uma classe? É de fato uma classe?

Outro exemplo é quando vamos criar os construtores para nossas classes. Nesse vídeo, por exemplo, quando o Felipe cria os construtores para a classe Editor. Ele faz:

Editor(this._controlador, this._rotulo, this._dica);

Se usarmos o VSCode pra gerar automaticamente o construtor, ele coloca:

const Editor({Key key, this._controlador, this._rotulo, this._dica}) : super(key: key);

Quer dizer, aparece uma classe Key de key, meus parâmetros, agora dentro de CHAVES e esses " : super (key,key)" em seguida, que eu não faço a mínima idéia do que se trata.

Abraços.

2 respostas

Opa, na continuação do vídeo eu vi que as chaves são pra informar que os parâmetros são opcionais. haha xD

Olá Walter, tudo bem?

Realmente as IDE's ajudam mas também criam diversas mágicas que podemos não estar tão acostumados assim!

Em relação a suas dúvidas:

Por que a String é na verdade uma classe? É de fato uma classe?

Sim :)

Você pode ver a documentação aqui, a grande questão é que não precisamos utilizar o construtor padrão String("Texto"), assim como em outras linguagens como Java, podemos abstrair e fazer:

String nome = "Geovani"

Mas na verdade até temos construtores para criar Strings, mas que raramente iremos utilizar :)

Não que int, bool e double também não sejam classes, mas na maioria das outras linguagens eles são chamados de tipos primitivos e acredito que o Dart aproveitou isso para não ficar diferente :)

Então a regra é bem simples, fora esses 3 citados, todo o resto iremos utilizar letras maiúsculas para indicar que são classes!

Quer dizer, aparece uma classe Key de key, meus parâmetros

Bem, isso é um pouco mais complexo, temos até um vídeo do próprio Flutter tentando desmistificar um pouco isso:

Um resumo básico, é que iremos utilizar normalmente quando queremos trabalhar com coleções de widgets para operações de reoordenar, ou mudanças de posições na arvore de elementos, de forma de garantir que o estado se mantenha :)

Neste caso o que acontece é que o VSCode, por padrão, cria esse parâmetro adicional que seria uma espécie de ID e está invocando o construtor da classe base passando ele como parâmetro, que é onde de fato deve estar essa key

Mas como eu disse, na maioria das vezes, não iremos trabalhar com essa mudança em nossa árvore, então podemos retirar sem problemas nenhum

Acredito que uma coisa que auxilia bastante no desenvolvimento com Flutter é dominar uma linguagem com Orientação a Objetos, como Java, C#, ou, ir direto na que estamos trabalhando no Flutter com o Dart, dessa forma algumas coisas vão ficando menos abstratas

Abraços e Bons Estudos!