Carlos Batista 3 years ago
carlosbatista.dev

Leia erros e evolua!

A leitura e a observação é muito importante para sua evolução.

Quando estamos iniciando na programação nos costumamos com os vídeos e artigos que tem todas as informações que precisamos, geralmente nós apenas copiamos o código e colamos em nossa IDE para executar e ver funcionando, porém quando ocorre um erro ai que as coisas ficam mais complicadas ainda!



Eu notei através de publicações em grupos de programação e pessoalmente também, que grande parte dos programadores iniciantes não param para ler o código e também para ler o erro, ainda mais hoje em dia que algumas linguagens dão uma mensagem de erro praticamente mostrando como corrigir!



Como nós focamos em Dart/Flutter eu vou mostrar um exemplo com código em Dart:

Considere o seguinte código:


void main() {
  
 int x = 0;
 int y = 1;
  
 String soma = x + y;
  
}


Logo a IDE mostraria uma mensagem de erro, ou se você executar o código de qualquer forma seria emitido um erro da parte do Dart, bom e que erro seria esse ? Veja abaixo:


A value of type 'int' can't be assigned to a variable of type 'String'.


Agora note que mensagem está em inglês, mas e se você não sabe ler em inglês?

É muito simples! Copie a mensagem e cole no Google Tradutor!


Um valor do tipo 'int' não pode ser atribuído a uma variável do tipo 'String'.


Note que se você prestar atenção, você já sabe qual é problema!


"Um valor do tipo 'int'" - Nós temos as variáveis x e y que são do tipo int;

"não pode ser atribuído a uma variável do tipo 'String'" - Nossa variável do tipo String é a soma;


Quando nós somamos x e y, como x é igual a 0 e y é igual a 1. O resultado seria 1, e seria um inteiro.

O problema é que estamos atribuindo um inteiro que é o resultado da soma em uma variável do tipo String.



Então já identificamos o problema, como corrigir?

Agora é a hora de pensar, pois imagine o seguinte:


Você percebeu o problema e diz: "É só eu alterar o tipo de x e y para String" e ficaria assim:


void main() {
  
 String x = 0;
 String y = 1;
  
 String soma = x + y;
  
}


Isto seria um problema, pois agora teríamos dois erros do tipo:

A value of type 'int' can't be assigned to a variable of type 'String'


Se você sabe o básico dos tipos, sabe que pode usar as aspas para criar uma String, então podemos fazer o x e y se igual um valor dentro de aspas, ficando desse jeito:


void main() {
  
 String x = "0";
 String y = "1";
  
 String soma = x + y;
  
}


Agora sim! Não teria mais erro!

Mas se você não pulou as aulas básicas de programação e praticou bastante, já sabe que o resultado não será o esperado. Como assim ?


Quando você adiciona um símbolo de + em duas String você está concatenando, isto é, juntando duas Strings em uma só, por exemplo:


Se eu ajuntar dessa forma:

"D" + "a" + "r" + "t"

O resultado será:

"Dart"


Como x e y é do tipo String, logo o resultado da junção deles será "01". Mas e agora ? Como resolver?

Bom, aqui entra uma questão importante, pois existe diversas formas de resolver, porém qual é a certa ?

A resposta é que provavelmente todas estarão corretas, porém, você deve sempre buscar o mais simples!


Veja algumas soluções:


  1. Podemos fazer com que x e y sejam do tipo inteiro novamente, e podíamos usar uma forma de formatação, como: String soma = "${x + y}"; E a resultado seria o esperado.
  2. Podíamos usar a expressão: String soma = (x + y).toString(); E a resultado seria o esperado.
  3. Podíamos até fazer com que soma seja um int ao invés de String, pois qual é a necessidade de ser String no contexto em que estamos ?


Além dessas existem mais! Mas lembre-se de sempre buscar a mais simples!



IMPORTANTE!

Isso que acabamos de ver é um exemplo quando você não para antes para pensar e tentar chegar em uma solução simples! Note que nós ficamos na tentativa e erro, porém, geralmente quando estamos iniciando não temos uma percepção tão bem trabalhada para saber o que fazer logo de cara, por isso pode acontecer de você ficar perdido! Mas se você parar para entender o que você está escrevendo, ler a mensagem de erro, e pensar em como resolver como: "Se eu o tipo de x como String vai resolver o problema ? Bom... se eu fizer isso, então y também teria que ser String para eu somar, mas os dois forem String eu teria que converter eles para inteiros para eu poder somar e depois pegar o resultado e converter para String, mas eu poderia deixar ambos como inteiro e mudar apenas o tipo de soma para int ou até mesmo apenas converter o resultado da soma em String. Mas como faz isso ? Bom vou pesquisar no google: int para string no dart e vou pesquisando com paciência até encontrar o problema, se não encontrar eu peço ajuda em alguma comunidade como a Strawti".



Lembre-se! Pense, Leia e:

"Não fique no automático" ~ Ailton - CEO da Strawti


Acabamos aqui, agradeço pelo leitura e até a próxima!

1
385

ClipPath

Hoje vamos falar um pouco sobre Flutter e um de seus widgets super incríveis, que é o Clip...

1647362706.jpg
Thays
2 years ago

Links úteis para designers, animações, imagens.

Olá a todos, nesse post quero deixar alguns links úteis para quem busca inspirações de des...

1647357567.jpg
Ailton D. Santos
2 years ago

Gerando os assets do jeito certo

Ícone de notificações, ícone de inicializador...

1646920549.png
Carlos Batista
1 year ago
Manipulando listas no Dart

Manipulando listas no Dart

1646920549.png
Carlos Batista
3 years ago

Gerenciamento de Estado no Flutter com GetX

Um gerenciador de estado simples e eficiente!

1646920549.png
Carlos Batista
2 years ago