Transcrições
1. Apresentação do curso: Olá, bem-vindo ao. Mas quando o corpo de enfermeiros para essa programação não verbal, primeiro devemos saber que
os fundamentos da linguagem
Dart sob demanda por desenvolvedores está
aumentando dia a dia. E é por isso que
devemos ter certeza que conhecemos todos os conceitos
necessários. Antes de começar este curso, gostaria de me
apresentar. Sou, sou um desenvolvedor
como
oficinas de condução bem o suficiente
para a
loucura pessoal medieval e permanecerá
comunidade no Meetup. Lembre-se sempre, a programação
é uma arte e somos sombrios. Só então prepare o código. E vamos começar.
2. Vamos mergulhar em Dart: Olá, bem-vindo à seção de
programação escura. O desenvolvimento multiplataforma é
um tópico muito quente hoje em dia, e temos poucas opções no
mercado para criar aplicativos. Entre eles, a Flórida ganhou imensa popularidade em
um curto período de tempo. Mas antes de
saltar diretamente no Flutter, devemos conhecer os fundamentos
dessa programação. Dart é desenvolvido pelo Google. E é como qualquer outra linguagem de
programação, como script Java C
com conceito básico, que discutiremos em breve. Portanto, sem perder mais
tempo com o teórico, vamos começar a aprender
passo a passo. A primeira coisa que temos que
fazer é instalar o escuro. Morto fácil começar como a caverna que você pode
instalar separadamente. Mas nesta sessão
estaremos usando a cama de pontos on-line porque mais tarde, quando
aprenderemos flutter e instalar
todas as ferramentas inundadas, então elas serão
instaladas automaticamente. Portanto, não precisamos fazer
isso separadamente agora. E isso é apenas uma ferramenta online para desenvolver e escrever os códigos. Para isso. Você pode simplesmente ir ao seu navegador e digitar dot pad. E veja aqui está. Você escreve o código
no lado esquerdo. E no lado direito, a saída estará lá. Se eu clicar no botão Executar, você pode ver este hello123 para, este é um tipo de loop
for-loop que
discutiremos mais tarde. Então, se dissermos, quais são os conceitos básicos
da linguagem Dart? O básico é
o ponto de entrada, que é a função principal. Aqui você pode ver esta função principal é
o ponto de entrada do código, o que significa simplesmente se
executarmos esse código, o que quer que esteja escrito dentro dessa função principal
será executado no início. Se pontilhar nosso retorno aqui, ele não funcionará até e
a menos que seja uma função, e nós o chamamos dentro
da função principal. Então, para produzir qualquer coisa, usamos a declaração de impressão. Aqui você pode ver se eu
removo isso e, assim como impressão, a flutter é incrível. E execute, então você pode
ver que está imprimindo. Então, simplesmente, se você está vindo de qualquer PHP ou qualquer outra linguagem de
programação, você sabe, a declaração de erros de impressão é muito comum na maioria
das linguagens. E também strings,
aspas limpas, mas números inteiros não. Que simplesmente no lugar. Se eu estiver escrevendo print 2021, então ele não precisa de
aspas duplas ou aspas simples. Mas se for uma string
que é alfabetos, definitivamente ela
requer aspas. Agora, sabemos qual é o ponto, qual é a declaração impressa? E a próxima coisa que temos que
entender é que os comentários em qualquer
comentário da linguagem de programação estarão lá. É como entender o que está
acontecendo nas funções. Os comentários são apenas para referência
e não são executados. O que isso significa é, se eu escrever aqui, próxima declaração
imprimirá string e depois executá-la. Você não verá essa declaração
nesse console porque
é um comentário. Agora, comentários que eu costumava usar. Para que, no futuro, quando você está olhando de
volta para o código, é muito fácil para você entendê-lo e não
ficar confuso mais tarde. Então isso é o básico, e acho que não. É muito agitado. Na próxima sessão, aprenderemos mais sobre quais nossas variáveis e
quais são os tipos de dados.
3. Variáveis e DataType: Olá. Neste vídeo,
aprenderemos sobre o que são variáveis
e tipos de dados. Se você está vindo de um histórico de engenharia
ou de qualquer grau de tipo BC, você pode ter ouvido
esse termo olhar. É o básico de
qualquer linguagem de programação. Então, o que basicamente é uma variável? As variáveis são usadas para armazenar informações a serem referenciadas
e manipuladas posteriormente. Isso significa que se você tiver alguma média, suponha que flutter, então você
acabou de armazená-la em uma variável. Como a linguagem. A linguagem é igual a flutter. E sempre que você
quiser produzir essa flutter, basta usar esse idioma, palavra, palavra-chave, você pode dizer. Agora, o que são tipos de dados? Existem alguns tipos de dados
incorporados. Isso é Números, Strings, Booleanos, lista e mapa. Liste nossos arrays em PHP, ele é chamado de arrays, e
aqui é chamado de lista. O conceito é o mesmo. E também mapas. Mapas é apenas um par de valores chave, como dicionário na linguagem
Python, matriz
multidimensional em PHP. Portanto, não há nada de
novo na linguagem Dart, leitura é exatamente a mesma. É só que você precisa
atualizar sua memória aqui. Agora, a coisa é como
declarar uma variável. Este é um padrão. Primeiro é o tipo de dados, segundo é o nome da variável
e obtém um sinal de igual, que é igual ao valor. Agora, esta era tem um
atraso de inteiro, a, 25 a 30, o que quer que seja. E essa idade tem isso. O tipo de dados da guerra que é, o que simplesmente implica que não
sabemos o que ela vai conter. Pode ter um número inteiro, pode ter string. Mas aqui, se eu tentei
escrever algo como a
Flórida uma string, ela mostrará um erro porque o tipo de dados
recebe um número inteiro. E lembre-se, flutter ou dark é uma linguagem
tipada estaticamente. Isso significa que na maioria das
vezes você especificará 51, uma variável de tipo ou a
função será mantida. Isso é o principal. Você só, você não, você
simplesmente nunca se esquece disso. Se tivermos um tipo de dados de login, a variável
deverá conter esse valor. Agora, todos e cada tipo de dados discutiremos
passo a passo, um a um. Mas no próximo vídeo, vamos praticar nos números
mais recentes, que serão
inteiros e duplos. E essa string, eu tenho
esse exemplo básico. Aqui. Estamos usando o exemplo
do filme Vingadores. Se você não assistiu
ao filme, está tudo bem. Mas acho que a maioria de
nós são fãs da Marvel. No entanto. Você pode ter ouvido falar
sobre esse nome, Homem de Ferro, e vamos trazer nossa escuridão e remover o
que estiver na função principal e começar desde o
início. Na última sessão, ouvimos falar dos
comentários que usaremos agora. Aqui, é como
declarar variáveis. Então agora é hora de
declarar nossa primeira variável. A primeira coisa que
temos que escrever, digitar, será int. Em seguida, o nome da variável. Ele será marcado, o que será igual a 3000. Então, simplesmente,
concluímos nossa tarefa de
declarar uma variável. Agora, suponha que este seja um número inteiro, mas o que acontece se
houver um valor decimal? Suponha a Turquia 0,5 ou o que quer que seja. Se você tiver um valor Pi
e não nesse caso, o tipo de dados será o dobro. porcentagem dupla
é igual a 92,5. Você acabou de dizer que pode
adicionar o que quiser. Então, se você quiser
ter alguma corda, ela permitirá que o
herói de cordas seja igual a Ironman. Se você tiver algum outro
herói próprio, você pode simplesmente anotá-lo. Sem problema. E quando vamos nos espalhar? Ok, declaramos com sucesso nossas
quatro variáveis aqui. Agora é hora de imprimi-los. Portanto, lembre-se de imprimir, aprendemos que temos que
usar a declaração de impressão. E essa declaração de impressão só
imprimirá o
valor nesse console. Portanto, quando você estiver criando
um terceiro aplicativo real, se você usar essa impressão, não espere que o CUI ou a tela do aplicativo
móvel produzam valor de pomba. Somente o valor está disponível para a depuração é o uso do
desenvolvedor. Então, se você quiser, você
apenas imprime a pontuação. Em seguida, você pode imprimir a porcentagem. Então, é herói. E, em seguida, imprime a
roda e você corre, você executa o programa. E espero que sim, tenhamos a saída. É como 3000. É a
porcentagem de número inteiro é 92,5, herói Ironman e depois 10 nós. Então, acho que está claro para você o conceito de variáveis
e seus tipos. E entendemos
com sucesso números e tipos de string. No próximo vídeo, discutiremos
mais sobre cordas, o que nos ajudará a entender
esse conceito profundamente.
4. Interpolação de cadeia e cadeia String: Nesta sessão,
saberemos mais sobre strings. Anteriormente, usamos
um tipo de dados de string, mas neste vídeo
conheceremos as definições
e os conceitos. Então, o que é string? Strings são apenas coleções de caracteres ou você
pode dizer alfabetos. Podemos declarar uma string com aspas simples e duplas. É como se o nome
String fosse uma chamada para Flutter. Aqui estamos usando aspas simples. Aqui. Você também pode usar aspas duplas. Mas o problema surge
quando há algo
como é fácil ou algo
que tenha dentro do código. Então você pode dizer, se eu tiver esse nome de guerra é igual a 11. Agora, ele mostrará isso porque você tem aspas simples dentro de
aspas simples. Para resolver esse problema, você precisa usar
barra invertida r, certo? Aspas simples dentro de
aspas duplas para evitar qualquer adição. Aqui, barra invertida
aqui, você precisa simplesmente usar isso e
o erro desaparecerá. Se eu executar o programa agora, você pode ver que a
saída estará lá. E se você quiser, você pode simplesmente usar remover a barra invertida e usar
aspas duplas no exterior. Então também seu programa
funcionará sem problemas. Portanto, essa situação pode acontecer enquanto
você está construindo um aplicativo que você tem algo como se fosse
ousado ou algo assim. Só temos
que lembrar que você não pode usar simples dentro de aspas
simples
ou aspas duplas
dentro de aspas duplas. Então, sabemos como
declarar uma string. Agora, o que é a interpolação de
cordas? Isso também é muito simples. É como uma combinação
de variáveis e strings. Normalmente, em qualquer outra linguagem de
programação, podemos combinar variáveis
e strings como esta. É por isso que o nome
é chamado de chegada. Imprimir, meu nome é e em seguida, símbolo mais e
o nome da variável. Isso também é correto e
escuro, mas não recomendado. Isso prefere escrever variáveis dentro das aspas
duplas
usando dólar antes que o
nome da variável mostre a você. Fazendo isso. Suponha que a variável seja Hero. Tenho que escrever. Meu herói é. E depois Ironman. Para isso, eu tenho que usar
esse cifrão e,
em seguida, esse nome de variável. E se eu executar o programa,
veja, meu herói é Ironman. É interpolação de cordas. Anteriormente, apenas
imprimiríamos variáveis. Mas, definitivamente, nos aplicativos
do mundo real, você precisa usar algo
como convidados de boas-vindas. Os hóspedes serão variáveis. E, se o usuário fizer login, nome do convidado
mudará para o nome de usuário do usuário. É por isso que a interpolação de
string é um tópico muito crucial. Agora, dentro desses poetas, ou seja, podemos produzir usando
esse símbolo de dólar. Mas e se, se
houver algum tipo de funções, como
adição ou obtenção de terra? Nesse caso, você tem que usar Donner e
esses aparelhos encaracolados. Você pode ver o exemplo aqui. E também faremos isso por conta própria. Só estou removendo tudo isso
apenas pela simplicidade. Como int length é igual a 20 e, em seguida, bert é igual a 10. Agora, se eu quiser fazer algum tipo de cálculo com
nossas variáveis, então eu tenho que escrever
um pouco é dólar, então esses parênteses
e dentro dessa terra. Tudo bem? Sim. Agora, se eu correr, ele simplesmente somará 30 C. Mas você não pode fazer
assim. E isso. Se você tentar fazer usando
apenas o cifrão, ele simplesmente o imprimirá. A soma é 20 mais 30, mas não faz essa parte de
cálculo. Então você precisa se lembrar disso ao criar
um aplicativo porque haverá muitas vezes em que você terá que fazer
algum tipo de funções. Talvez seja necessário obter
o comprimento da matriz. Nesse caso, esse aparelho de dólar
e encaracolado é usado. Se você quiser, você pode
tentar mais alguns exemplos criando como uma área japonesa. Há parâmetro, há muitos
cálculos matemáticos, se você quiser, você pode apenas praticar
sozinho. É isso. Esse conceito está feito. Este é o
conceito muito básico de string. Nos próximos vídeos, também
aprenderemos algumas
novas palavras-chave.
5. Palavras-chave definitivo e &: Hoje vamos aprender sobre o que nossas constantes
nesse idioma. Então, quando ouvimos a
palavra constantes, a primeira coisa que veio à nossa mente é que o
valor não será alterado. Que o valor
não pode ser alterado. É um valor constante. Então não fizemos as constantes, existem duas palavras-chave. O primeiro é finito e o
segundo é tão constante. Agora vamos começar com essa
definição de palavra-chave const é muito simples. Const é usado se o valor
for conhecido no momento da compilação. Nós apenas esquecemos esse termo
de termos em palavras simples. Enquanto o desenvolvimento
do aplicativo, nós codificamos o valor rígido, ou
seja, as marcas int constantes
são iguais a 90 marcas. Vamos tentar o nosso. Haverá
marcas const int é igual a 90. E se você imprimir, você
pode sprint marcas. E removerei os dados
acima da declaração de impressão. Agora você pode dizer que são
90, são latas. Ou seja, se tentarmos
alterar o valor mais tarde, como 58 é Marx igual a 50. Obter será um erro. A chance de valores
não pode ser atribuída. Ou seja, se o valor for fixo, não
podemos alterá-lo
mais tarde no programa. Este é o uso
da palavra-chave const. Agora você pode estar pensando, ok, Const a, eu entendo, mas qual é essa palavra-chave final? É um pouco complicado. Suponha que não
saibamos esse valor
ao escrever código, mas o valor
será calculado. Nossa busca do
banco de dados em Runtime. Tempo de execução significa se o
aplicativo é operando. E depois disso, após o
valor ter sido calculado, não
queremos que o valor seja alterado após ser buscado. Então, é como algum banco de dados. Haverá a idade do usuário. Será final, cada palavra-chave. Mas uma vez buscado do banco
de dados, depois disso, o usuário
não pode alterar esse valor. Então aqui você não pode tentar
escrevê-lo diretamente. Se você acabou de escrever o
nome final da string é igual a flutter. Então também funcionará. Normalmente. Não
mostrará nenhum erro aqui porque no final
é uma constante. Mas você entenderá mais
desse conceito mais tarde
enquanto constrói uma aplicação no nível da área. Mas aqui no exemplo, você pode apenas ver
o valor de pi,
ou seja, 3,14 é uma constante. Nisso, usaremos
a palavra-chave const. Mas enquanto os dados estiverem disponíveis, e se os atribuirmos à data, ponto de
hora agora, isso será final porque suponha que o
aplicativo seja anexado às 10 horas. Naquele momento, essa data
será das dez horas. Ele será buscado
uma vez e depois. Essa data não será alterada, mas esse valor de data não
foi escrito. Frota. Então, nesse código,
podemos fazê-lo com um exemplo
muito básico. Pode apenas dizer, escrever
int x é igual a 1, y é igual a 2. Final a é igual a x. Então, para int a. E aqui vou deixar
const b ser igual a y. Imprimir B. Vamos ver. Ele mostrará um somador porque não podemos
simplesmente escrever algo, o que não é apenas
eles estão aqui, se estivermos usando um const aqui, o valor tem que ser
retornado como cinco. Mas no
final acima, a é igual a x. Não está mostrando nenhum erro. Como o final
é como se executássemos o aplicativo e o valor ficar dentro dessa variável final, está
tudo bem para isso. Depois disso, não posso alterá-lo. Como é igual a 26. Isso eu não posso fazer
porque é um tipo de constante. Então você entenderá, você pode entender esse conceito aqui de uma maneira muito básica. Se for uma palavra-chave const, então temos que escrever o valor. E se for uma palavra-chave final, variável de
concurso pode conter algo que
será atribuído posteriormente. É isso.
6. Declarações condicionais: Nesta sessão,
saberemos sobre
declarações condicionais. Declarações condicionais estarão lá em qualquer linguagem de
programação, PHP, Python, Java, C, C plus servem para qualquer coisa. O conceito de
declaração condicional sempre estará lá. Então, o que são
declarações condicionais? É como se
houvesse uma condição. Se isso for verdade,
faça outra coisa. Não faça nada. A primeira
instrução condicional é se mais puder ver aqui, ofensa, se essa condição for verdadeira, então execute o código, RS, execute outro código. É muito simples. E o segundo é se, caso contrário, se isso significa que se você tiver
várias condições, suponha que se a idade for
maior que 18, então eles podem dirigir. Se então, caso contrário, se, caso
contrário, se a idade for maior que 21, então eles podem
ir a clubes e todos. E simplesmente, no final, senão você poderia apenas escrever
Ps mencionou sua idade. É basicamente algum tipo de condições em
sua aplicação. E confie em mim, quando
você estiver construindo
qualquer aplicativo do mundo real, haverá muitas condições. Se você vir o Facebook, você pode ver se o
usuário fez login. Em seguida, mostre a página inicial, mostre o diálogo em violação. Esse é um
exemplo muito bom, eu direi. Agora, existem alguns
operadores também, que usamos frequentemente
com declarações if else, que é o fim são nossos. Duas condições podem ser usadas, podem ser unidas usando e R. E ambas têm
seu próprio significado. E significa operador. Ambos. As condições especificadas
devem ser verdadeiras. Ou seja, se a idade for maior que 18 e a pessoa é de Diga-lhe. Nesse caso, existem
duas condições que ambas devem ser
satisfeitas para executar esse código. E quando
se trata do operador, é como se essa pessoa
for maior que 18, de Delhi, se qualquer
uma delas for verdadeira, então podemos o sistema
executar o código. Você pode apenas esboçar as informações básicas
dela porque agora, vamos começar com um exemplo. Vamos fazer isso. Mais uma vez. Estou aqui usando esse
cenário de ferimentos para que
seja fácil de entender. Vamos remover os
códigos anteriores e vamos iniciá-lo. Aqui primeiro. Vou usar comentários ao escrever
variáveis declarando abaixo. Agora, usamos essa palavra-chave
const anteriormente. Aqui vou escrever const
int stones é igual a 6. Para seu uso, posso apenas escrever
comentários como usar const para que o número de pedras
não possa ser alterado. Simples. Fluxo denso, corda. Herói é igual ao Homem de Ferro. E a corda que aprendemos é igual a nos bronzear. Para baixo. Esse novo tipo de dados
aqui será booleano. Booleano é o que você pode
dizer, verdadeiro ou falso. Booleano não é
nada além disso para valorizar, ou será verdadeiro ou falso. Então, temos esse
herói booleano, quando é igual a verdadeiro? E novamente, booleano. Aprendemos quando é igual a falso. Então, declaramos com sucesso todas as variáveis necessárias, as cinco variáveis aqui. Agora usaremos declarações
condicionais. Se nossa primeira
condição for se
as pedras forem inferiores a seis, imprima. Você não coletou pedras infinitas. Uma condição, em vez disso,
segunda condição, se r for igual a 6, isso significa que as pedras são seis. E então, quando é igual a 2. Isso significa que o vilão
ganha aqui neste caso, vamos imprimir usando interpolação de
cordas. Aprendemos que tem novamente interpolação de
cordas, seis pedras infinitas. Agora escrevemos
duas condições aqui. Esse terceiro podemos dizer porque se mais você puder
ter várias condições, não
há limite. Novamente, se as pedras forem iguais a seis e a heroína for igual a verdadeira. Nesse caso, você
simplesmente pisca. Herói atinge o Homem de
Ferro como seis, que são as pedras, pedras
infinitas. E, finalmente, na declaração
else, você pode escrever herói. E
não nos importamos com pedras. Simples. Agora, com sua mente, pense, o que será produzido
aqui pedras é 0, 6 e 0 quando é verdade? Então, o primeiro será falso, o
segundo será
falso, o terceiro. Portanto, a saída será adicionada. O homem tem nossas últimas seis pedras
infinitas. Mas se eu simplesmente tornar
isso falso também, então ele vai durar. Else será
executado porque
nem uma das
condições é satisfeita. E eu sou isso, só estou
lembrando de novo. Como os tons são constantes, você não pode alterar
o valor das pedras. Aqui. Assim. Ele mostrará um somador. Então, espero que você tenha
entendido claramente quais nossas declarações condicionais e se outra coisa é muito
autoexplicativa. Porque se uma condição
for verdadeira, imprima-a. Imprima a outra coisa. Então é isso para todos hoje. Vejo você no próximo vídeo.
7. Listas: Até agora, discutimos alguns dos tipos de dados,
como strings, duplas, booleanos também. Mas agora é hora de
discutir a lista. Este é um tópico muito importante porque, ao criar
um aplicativo, usaremos o
tipo distinto na maior parte do tempo. Agora, o que é uma lista? Uma lista é simplesmente um
grupo ordenado de qualquer tipo de dados. É comumente conhecido como
ADH está em outras linguagens, se você está vindo
do PHP
ou qualquer outra
linguagem de programação que você possa ter ouvido falar sobre matrizes. Então, simplesmente significa mais cedo quando estávamos
declarando qualquer variável, era um link inteiro, um valor. Ou seja, suponha que esse Wilson
estava segurando apenas tênis. Mas e se quiséssemos uma variável que conterá várias
informações do usuário? Suponha o nome, o número de
contato, a idade, tudo de uma forma, mas nesse caso, estaremos usando a lista. É muito conveniente
armazenar e acessar os
dados dessa maneira. Agora, cada elemento
na lista é definido por um
número exclusivo chamado esse índice. É muito simples. Suponha que se você quiser acessar
dados da variável, você só precisa se lembrar em
qual índice ele está. Obviamente, para acessar qualquer coisa, devemos ter algum ID. Aqui. Id, o ID é o
índice e começa a partir de 0. Vamos começar a programar. Eu acho que TOD você entendeu, eu removerei a coisa
anterior. Para declarar uma lista. Temos que mencionar esse
tipo de dados Na primeira lista. Então, simplesmente vou escrever marcas e os colchetes. Por isso,
declaramos alistar com sucesso. E você pode apenas
ver no número inteiro
ímpar booleano acima também. Mas desta vez é uma
nova lista de tipos de dados. E quando eu estava dizendo
sobre as posições do índice, o que eu quero dizer era, suponha que na lista de marcas, existam vários
valores como este. Certo? Existem quatro valores
nessa variável. E agora este 90 está
na posição 0, está em uma posição, sessenta nessas duas, e 30 está na árvore. Então esse é o índice. Simplesmente você pode apenas dizer suponha se eu quiser acessar este 90, eu simplesmente tenho que escrever marcas de
impressão e essa posição de
índice 0. Agora vamos executar o programa. Veja 90. Você tem esse valor. Agora suponha que se você quiser arrumado, qual índice você tem que escrever? Serão três. Então, sim,
então é 30 impresso. Agora, essa coisa é, suponha que tenhamos uma lista
vazia de idade, OK e V1 para atribuir um
valor a uma nova maneira. Ou seja, pode
ser, está vazio. Mas, mais tarde, queremos atribuir. Nesse caso, você não pode
simplesmente escrever diretamente idade na posição 0,
dar até o momento. Isso mostrará um somador quando estivermos imprimindo a lista etária. Vamos ver, experimentar. Consulte não capturado, adicione um erro de intervalo, o que significa que essa não é a maneira correta de
atribuir seu valor. Mas se você
quiser alterar o valor das coisas que
já foi atribuído, isso é as marcas do Enda. Nessa posição 0, você quer escrever 10. E depois imprima marcas. Lista. Vamos ver o que acontece. Veja, 90 mudou para dez, que simplesmente implica que você pode alterar o
valor já existente com esse método, mas você não pode atribuir. Agora, você pode
me perguntar como
atribuiremos um valor porque
Marx já está pré-escrito. Mas quando estamos construindo
um aplicativo, todos esses dados
estarão em tempo real. Nesse caso, eu só tenho que
escrever H dot e depois adicionar. Esta é uma função. Esta é a, você
pode dizer operações que uma lista excede a idade, ponto adicionar 25 e, em seguida,
imprimirei Idade. Veja, 25 estão lá. E agora não está mostrando
nenhum erro porque essa é a maneira correta de adicionar
um valor dentro da lista. Novamente, se eu escrever H dot, adicionar 13 e imprimi-lo, então será 25 e arrumado C. Então, é um
conceito muito fácil e muito importante porque
a lista é a única maneira quando
estamos buscando muito, suponha que em um
aplicativo como o Facebook, haverá muitos usuários. Portanto, todos permitem que os usuários possam
ser armazenados em uma lista. Se você vir este slide, escrevi que
o índice começa a partir de 0 e se estende até n menos 1, onde n é o número total
de elementos na lista. O que quero dizer com isso
é o índice aqui. Começa a partir de 0
e termina em três, que é o número total de elementos na lista menos 1, ou seja, 1, 2, 3, 4, 4 menos 1, 3. Como começa com 0, esse final será sempre o número total
de elementos menos um. É um conceito muito importante de qualquer linguagem de programação. Agora, fizemos essa parte onde
não podemos atribuir valor
a uma lista vazia. Também fizemos
dispersão também. Já estamos atribuídos que o valor
pode ser alterado assim. Agora, existem poucas
operações que podem ser feitas em qualquer lista. Essa porção de adição está concluída. Agora, se você quiser
remover qualquer elemento, então é muito fácil. É como lista, nome, que é Marx dot remove. E quais dados você
deseja remover. Quero remover o suposto 25. E então vou imprimi-lo. Ele deve desencadear, exibido 30. Acho que cometi um pequeno erro. É como quando estamos removendo, talvez
tenhamos que usar remove em para atribuirmos o índice. Suponha que aqui eu queira remover 0. Certo? Ok, é nos fazer remover
das marcas e a divisão da idade de
impressão
mostrará que elas foram removidas. Vamos fazer isso de novo. Em Marx fui remover 90
e depois imprimi marcas aqui. Vamos conferir essas saídas. C, 90 é um. Assim, dessa forma, podemos remover o elemento se soubermos o valor
do elemento. Mas suponha que não saibamos
esse valor e apenas conhecemos o índice que é marcas,
pontuar, remover, adicionar. E aqui darei
índice como suponha um e comentei
antes de remover a linha. Agora, os 80 serão removidos. Veja 10, 60, 30, mas um t não está lá. Então remova e remova em nossas duas operações, que
são muito importantes. Porque definitivamente, quando
inserimos qualquer valor, se o usuário quiser excluí-lo, ele deve ter esse recurso. É esse recurso que você pode ver. Agora, a última coisa é
o comprimento da lista. Ou seja, se quisermos
ter o comprimento, acabamos de ver, certo? Comprimento do ponto das marcas de impressão. E vou parar de
remover elementos. E agora digamos
que acho que mostrará o que eu estava discutindo
anteriormente, ou seja, esse é o valor n e o elemento final sempre
é o comprimento menos um. E se você quiser
imprimir algo assim com concatenação,
você pode fazer assim. O comprimento
da lista é então dólar. E lembre-se
da última sessão, se quisermos fazer qualquer operação, então temos que fazer dólar
e depois chaves. E então marca o comprimento do ponto. Vou executá-lo novamente e ver o comprimento
da lista é quatro. Então eu só quero dar uma recapitulação de concatenação porque não
quero que você esqueça os conceitos
anteriores também. Então, tudo bem, isso é tudo
para este vídeo. encontraremos novamente
no próximo vídeo. Obrigado.
8. Mapas: Então, agora é hora de aprender
sobre o próximo tipo de dados, que é Tom map. O mapa também é um tipo de dados muito
importante. Quando estamos construindo
um aplicativo de inundação. Principalmente você usará a lista. Nosso mapa é, você
usará o mapa dentro da lista. Neste momento, se você está
ficando confuso, não há problema. Nos vídeos posteriores, você entenderá
o que eu queria dizer. Então, o que é um mapa? Um mapa é um par de valores de
chave simples,
o que significa que, mais cedo,
quando era uma lista, você pode ver que
era o valor deles. Mas ele não tem nenhum nome. Você pode apenas dizer que
tinha aquele índice
neles a partir do qual
podemos chamá-los, mas não tinha um nome. Então, quando esses dados são muito longos ou quando
os dados são muitos dados, é muito difícil lembrar
o índice do valor. Nesse caso,
os mapas são muito úteis. Então, vamos ver o que isso significa. Essa chave será do tipo string, mas os valores em um mapa
podem ser de qualquer tipo que seja chave será suposto nome. Então o valor pode ser string, ou
seja, Rahul
flutter ou o que for. Mas também o nome da chave de ponto pode ter 22 ou 23
quaisquer valores numéricos. Portanto, não é obrigatório usar
apenas string como seu valor. Para declarar este mapa, podemos usar o mapa
construído que é este. É, você precisa colocar os pares de valores chave com um
eco lubrifica como este. Vamos começar criando
nosso primeiro mapa. Novamente, removerei esses dados e começarei
com uma fenda limpa. Agora, quando você está usando
um construtor Mac, você pode apenas escrever var
fruits é igual ao mapa. E depois disso, seus frutos. Você pode escrever apple como essa chave. Lembre-se de que a chave
e seu valor serão vermelhos. Agora, se eu imprimir a
variável de frutas e aqui var, ou também você pode usar o
mapa como um tipo de dados. Não haverá nenhum erro. Vê, isso? Maçã e vermelho. A Apple é essa chave, e vermelho é o valor. Então, na maioria das vezes, não
precisamos desse E, precisamos desse valor de
vermelho para imprimir isso. Você simplesmente precisa escrever o membro variável
Map
e, em seguida, dot py, que é a Apple. Agora execute seu programa. E na saída você
verá o Mar Vermelho. É assim que fazemos isso. É assim que o mapa está sendo usado. Agora, novamente, se você
quiser adicionar outro valor de banana com um valor de amarelo. E, novamente, primeiro,
imprima o mapa inteiro para que você possa ver como
ele está sendo exibido. É como se a primeira chave fosse a Apple, então o valor é vermelho e
vírgulas segunda chave é banana e o valor é amarelo. Agora você pode me perguntar, vamos imprimir o valor amarelo. Nesse caso, primeiro, tenho que escrever o nome do mapa. Então essa chave, que
não é um exemplo
mais válido, você pode dizer, será mapa de
alguns usuários e que faremos usando o mapa
literalmente antes, isso é feito usando o construtor de
mapas. Agora, declararemos um mapa usando chaves curly
diretamente, o que significa. Tenho um mapa do usuário. Então aqui, a primeira chave
será chamada Bill Gates. Segundo, você pode dizer idade. Não conheço essa idade exata, mas suponho exemplo
88 e cansado, Onde será fundador? E será novamente
uma string, Microsoft. Então aqui você pode ver que
é assim que declaramos um mapa. Este também é um tipo de tipo atrasado que
manterá vários valores, como exatamente como lista. Então, agora, se eu quiser, vou apenas escrever o usuário de impressão e então vou apenas
comentar as linhas acima. Veja nomeado
fundador de Bill Gates, Microsoft. Também. Da mesma forma, se
você quiser, como impressão. E mostraremos como
imprimir um novo, não novo. É como por falta de tempo para
um fundador do que para a evidência da Microsoft, certo? Abaixo é. Agora, novamente, relaciono o
usuário e, em seguida, o nome. Aqui estou usando concatenação. E você aprenderá a
buscar o valor dos dados de um mapa. Acho que há alguns adicionados. Mais uma vez, deve terminar com isso. Sim, eu sei o que fiz. Aqui. É um erro muito básico. Nada muito. Na programação, você está acostumado a esse
tipo de erros bobos. Agora, você obtém o financiador
de saída da Microsoft é baguetes. Então esta é a onda, como você produzirá esses dados
em seu aplicativo real. É muito
importante aprender. E também você também pode imprimir
o comprimento do mapa, como fizemos antes na
lista, será três. Ou seja, existem três valores. Veja três valores. Outras operações incluem
supor ponto do usuário. Você verá se acabo de
escrever chaves de impressão do usuário. Ele mostrará que toda a chave é que é nome,
idade, fundador. Então, se você esqueceu também, então você pode apenas verificar. E suponha que a partir dessas
chaves, você se pergunte valores. Ou seja, você não
se lembra de nenhuma das chaves, mas deseja buscar
todos os valores, então você precisa
usar uma função ou operação como ponto do usuário. Para cada dívida, ela
passará pelo mapa
com esse valor chave. E você pode simplesmente escrever impressão. Se você quiser valor, você pode
simplesmente imprimir esse valor. E vamos novamente
elogiar o Ting acima
e imprimi-lo e executá-lo. E agora você verá Bill
Gates AT e Microsoft. É assim que você olha
pelo mapa. E você não precisa
aguentar tanto estresse. Nas próximas sessões. Estaremos falando
profundamente sobre loops. Mas agora, nossa
preocupação era o mapa. E aprendemos muito, a operação final, o
que é importante, obviamente há muita
operação que você pode ver, veja. Mas a final se você puder
dizer que é como remover. Se você quiser remover uma chave, basta escrever remove,
então essa chave, o
nome da chave será nomeado. E depois disso, se você beber, então você não verá
Bill Gates aqui. Veja Bill Gates foi
removido do mapa. Então é isso. Esses são
os conceitos básicos. Espero que você tenha entendido a coisa básica porque para
dominar menos nosso mapa, você tem que
praticá-lo enquanto constrói um
aplicativo do mundo real. Obrigado.
9. Demonstrações de looping: Nesta sessão,
falaremos sobre loops e o que estão em loop. Então, se você está vindo de qualquer
outra linguagem de programação, acho que você pode
ter ouvido isso
para, laço FOR ou para um loop
do-while. E porque na engenharia
ou em qualquer programação básica, esse conceito estará lá. Portanto, os loops são usados para produzir
vários números de vezes. Os dados podem ser. Se tivermos que escrever, suponha que nosso nome 100 vezes, não
vamos apenas imprimir,
imprimir, desordenar impressão na
Flórida quando mais lisonjeiro. Vai demorar muito tempo. Nesse caso, vamos, podemos usar loops. E no final,
definitivamente vou te dizer ao construir um aplicativo
do mundo real onde loops estão sendo usados. Então, sai de quatro tipos, 44 em y a y. Vamos começar a
entendê-lo um por um. Então, o que é um loop for? O loop distante executa um bloco de código por um
número específico de tempo, que mencionamos nesse loop. Então, a sintaxe é assim. Usamos para então colchetes. Há parênteses. Dentro disso,
haverá três dados. Primeiro será a condição de
inicialização e o que deve ser feito. Você pode ficar
confuso agora. Vamos fazer isso praticamente. Vou remover tudo isso. Vamos começar. Loops. Primeiro será for loop. Então, suponha que eu tenha
essa sintaxe de loop for. Primeiro é a inicialização, ou
seja, a variável int I é igual a 0. Então a condição
eu menos de três. E então o que deve
ser feito a seguir? Depois que este código de
bloco será executado. Como se eu escrevesse impressão. Então, se eu clicar em Executar, é
assim que isso será feito. Agora eu é igual a 0. Ou seja, serei 0. Em seguida, ele verificará
a condição. Se eu o valor for menor que três. Se for verdade, ele entrará em conjunto e executará
esse bloco de código. Após a execução
deste bloco de código, ele
seguirá para esta etapa,
ou seja, eu mais, o que implica que vou me
tornar de 0 para um. Vamos executá-lo. Veja 012. Ele não vai em frente. Isso é depois de 23 porque
existe essa condição. Então isso é uma coisa muito básica. Mas na maioria das vezes
usaremos loops enquanto lidamos
com listas são mapeadas. Então vou escrever lista. Marx é igual a
novamente 50, 30, 20, 10. Então vou escrever para
int I é igual a 0. Serei menor que o
comprimento dessa lista, que será quatro. E eu mais, mais. E agora, se phi um para imprimir, então vou escrever o nome da
lista e o índice, que começará a partir de 0 porque
mencionamos aqui. Então, se você quiser, você pode simplesmente pausar e entendê-lo novamente, porque int I é 0, ele verificará se eu é menor que o comprimento,
que é quatro. Se sim, ele imprimirá esse valor na
lista desse índice. Primeiro será 0, ou seja, 50. Depois disso, ele
fará esse passo, eu mais um. E, novamente, a
mesma coisa acontecerá. Vamos ver a saída. Você pode ver a saída
1532, de fato 10. Então, o loop é muito poderoso. E ao criar um aplicativo
do mundo real, você usará
loops o tempo todo. Porque os dados que virão
do banco de dados estarão na forma
de uma matriz. Lista. Então você entendeu
isso para loop. Agora feito Next loop é para NLU. Então você pode estar pensando
por que isso para NLU, o loop for-in é usado para percorrer e listar um mapa. Está sendo principalmente, ele está sendo usado na maioria
das vezes só porque esse loop através da lista de
dados é tão comum. Portanto, há esse
tipo específico de loop em que não
precisamos mencionar como
essa inicialização, esse painel de guias,
porque é uma perda de tempo se já
soubermos o que temos que fazer. Então, vou comentar
os quatro acima. E aqui, vamos escrever isso. E muito longe de escrever. Loop vai como o quê? Mark, isso. Essa é uma
variável simples em marcas. E depois imprima a marca. Veja, a saída é a mesma, mas o código parece
muito mais limpo do que acima porque é
simplesmente, está fazendo o quê? É. Atribuindo essa
variável de marca ao primeiro elemento, segundo elemento e, em seguida,
imprimindo-a automaticamente. E este loop embutido sabe que ele deve fazer um loop de
dois pontos da lista, não deve exceder. Portanto, é uma prática muito
comum de usar for-loop nesse aplicativo
do mundo real. Acho que você já
entendeu isso até aqui, pode ser usado no Maps também. Você viu a lista, mas vamos tentar o mapa. Var. O usuário é igual a c0 será por volta da idade será suposto 25. E depois vamos pegar, este é outro nome e a
idade será salva 30. Agora, se você quiser fazer um
loop para este mapa, é simplesmente escrever longe. Este é o dia de
qualquer nome de variável nas entradas de ponto de Mark. Então isso é algo
que você precisa se lembrar. Vamos ver, acho que sim, tantas operações que você pode fazer. Vamos imprimir e ver
o que ele produz. Ponto de dados. Se eu apenas escrever dados, vamos ver. Ele mostra um erro ou qualquer coisa. Desculpe, tenho que escrever para o usuário. Isso foi novamente um erro tolo. Portanto, este usuário, se
estivermos usando um mapa, então você terá que escrever entradas. Isso você precisa
se lembrar de cor, porque o mapa é um
tipo diferente de tipo de dados. E então você pode apenas
escrever a tecla de ponto de dados e imprimir se quiser valor, em
seguida, o valor do ponto de dados. E vamos sentar nele. Veja Rahul 25, tick tock. Então, imagine esse
usuário agora, ele está contendo apenas dois dados. Mas se você tem um
aplicativo como Facebook e obtém nossos coortes ou frouxos e qualquer número de dados, é
impossível
escrever todos por chaves mortas. Nesse caso,
usaremos o loop. Agora, mais do
loop que você
entenderá enquanto estamos construindo um aplicativo de flutter agora, você apenas entende o conceito. Dois loops estão sendo feitos. Em seguida, o próximo é o loop while. While loop também
faz o mesmo trabalho. Não é muito diferente. Ele também percorre
os elementos. Usamos principalmente
loop while quando
sabemos quantas vezes o
loop realmente será executado. Aqui, no exemplo,
conhecemos o limite,
ou seja, enquanto o número
menor do que este. Mas suponha que uma música esteja
sendo reproduzida e até, e a menos que o usuário
pressione o botão de parada, ela deve continuar tocando. Este é um bom exemplo. Então, vamos fazê-lo através
do loop while também. Vou comentar isso. Então. Vou apenas escrever int
number é igual a 0, y. Y é o número menor que 10. Número de impressão. E número mais, mais
isso é implementado. Não é nada novo. É o mesmo que o for-loop. Veja, a maneira de
escrever é diferente. O loop for está sendo escrito
assim e vil é assim. Portanto, o loop final
é que fazer while, fazer while loop é diferente
do loop while porque
no loop selvagem, a primeira condição foi marcada. E depois que o código
do bloco foi executado. Mas primeiro o código é
executado pelo menos uma vez
e, em seguida, a condição
será verificada. Vamos tentar. Com o mesmo exemplo. Neste número é 0. Então, vamos apenas dizer que
faça o número de impressão, mas essa condição será
número maior que um. Então, imagine aqui
que a condição é falsa. Então, se estivéssemos usando esse
loop while, ele não deveria imprimir. Mas como estamos usando fazer while, você verifica a saída, veja 0. Está sendo impresso uma vez. Se eu escrever aqui número mais, mais também, então também a
condição é falsa, mas esse código de bloco
será executado. Então, fazer enquanto não está
sendo usado muito MATLAB. É como se eu não tivesse
usado o do-while, enquanto criava meus aplicativos. Na maioria das vezes estamos
lidando com o loop for. Portanto, cabe a você qual tipo de loop você deseja usar
em seu aplicativo. Então, no próximo vídeo, também
aprenderemos duas pequenas
palavras-chave que estão sendo usadas enquanto
estamos usando loops e Q.
10. Breque e continuar: Esta será uma
sessão muito curta, onde
discutiremos o que nossas declarações break
and continue, break and continue
são usadas com loops, qualquer tipo de loops. E o que ele faz, só
veremos porque evitamos quebrar apenas, você pode entender que
ele encerra isso. Olhe. Vamos tentar com o exemplo. E quando isso, remova esta e
essa declaração de quebra à direita. Se tivermos um loop for, para var I é igual a 0, eu menos de cinco. Eu mais, mais. Espero que você tenha
entendido esse loop porque no último capítulo
já discutimos isso. Aqui. Posso escrever impressão I, e você definitivamente
verá a dúvida colocada da
mesma forma de 0 a quatro. Mas e se eu
tiver uma condição aqui? Como se eu fosse igual
a então quebrar. Isso simplesmente significará que, se o número for para dois, ele deve terminar e, em seguida,
executar esse código abaixo. Vamos executá-lo e ver
que será apenas 01. Depois disso, o processo está sendo encerrado e o código
será executado abaixo. Mas quando se trata de
continuar declaração, continuar só vai pular
dívida nesse loop, mas não encerrará todo
o conselho. Suponha que eu tenha aqui
impressão, flutter. Primeiro, ele vai 01, depois termina e
executará esse código. Mas se eu escrever
aqui, Continue. E todo esse código será C, Apenas, vou usar
continuum e depois executá-lo. Veja, há muito
diferente do tijolo porque
somente quando tinha dois anos, o código foi encerrado. Mas isso não causa
fora desse loop for. Basta verificar a condição novamente e o
resto do código do sprinter. E então só ele irá e
executará todos os códigos abaixo. Portanto, este é um conceito muito básico,
mas importante porque Hume, teremos que usar a declaração continue R4 longe em seu
aplicativo sempre que necessário. Então, espero ter
liberado sua dúvida. Você, se
quiser, pode tentar novamente com
mais alguns exemplos. Se você quiser, você pode
apenas escrever uma lista de usuários, depois passar por ela e tentar usar
break our if-else. Depende de você porque quando
estamos aprendendo qualquer linguagem de
programação, é melhor
praticarmos e tentarmos abordar também que ela seja benéfica
para nós para o futuro. Então é isso para este vídeo.
11. Declarando funções e sintaxe de mão curta: Bem-vindo de volta. Nesta sessão,
falaremos de um tópico muito
importante. Então, se você tiver algum
interesse em programação, você pode ter chegado
à função word. As funções serão queridas. Ou você está trabalhando no PHP C, seja lá o que for, você tem que
entender o
conceito de funções. Então, o que é uma função? A função é apenas uma
coleção de código. São instruções
agrupadas para executar uma tarefa. Então, quando estamos
escrevendo códigos aqui, suponha que este seja apenas um código
realmente básico, dívida, para que possamos escrevê-lo
em um, no mesmo arquivo. Mas e se
houver 100 linhas de código ou 100 funções para
executar em um 100, a tarefa a ser executada. Nesse caso, temos que fazer uso de funções para que
possamos
declarar essa função
em outro lugar e
chamá-la aqui em nossa chamada em várias vezes
onde quisermos. Então, vamos começar. Vou remover e limpar tudo até
gostarmos de funções. Então aqui você pode ver a
sintaxe de uma função básica. Consiste em tipo de retorno, opcional, mas é recomendado. Tipo de retorno significa
o que a função retornará. E o segundo é o nome da função. Portanto, é apenas um tipo de nome de
variável que você pode dizer, porque nosso vastamente
para chamar uma função, você tem que dar um nome a ela. E essa terceira coisa são argumentos de
parâmetros. Esse é o valor que estamos enviando para a função
enquanto a chamamos. Então, agora você
pode ficar confuso, mas não precisa entrar em pânico. Vamos entender isso
lentamente passo a passo. E quando eu estava dizendo
e depois digite, às vezes a função
pode não retornar nada. Nesse caso, usamos
void como o tipo de retorno. Então, se você ouviu esse voto, você pode pensar, espere, eu vi em algum lugar. Então, se você for apenas
para o código de pato aqui, esta também é uma função que é a principal função com
o tipo de retorno de vazio. Então é muito estranho que
desde o início, no
início, no
início, estávamos trabalhando com funções, mas não sabíamos porque
esse é o ponto de entrada. É por isso que não
discutimos isso antes. Até agora, você pode ver que é a mesma sintaxe que
é o tipo de retorno, nome da
função e, em seguida,
parênteses e chaves. É assim que
declaramos a função. Agora, o TOD está pronto. Vamos escrever isso escrevendo uma função porque existem maneiras
diferentes para propósitos
diferentes. A primeira maneira é a função
sem passar argumentos. Isso significa que não estamos passando nenhum argumento
para a função e argumentos onde esses valores. Vamos tentar. Nós mesmos. E vamos apenas escrever a
primeira função sem argumentos de confusão. E retorne o tipo que essa função não está
retornando nada. Então, vou declará-lo como vazio. Vamos fazer alguma
coisa matemática, tudo bem, parâmetro. E então, na função, podemos ter variáveis, alguns códigos executáveis,
o que quisermos. Então, primeiro declararei
uma variável de número inteiro para. Então o segundo será
o de um deserto. Para. Então agora vamos fazer o
cálculo que é emissor
ruim será uma variável que estará mantendo este cálculo
dois em L mais B. Isso é comprimento mais pão. Certo? E então vamos apenas imprimir aqui o perímetro é e
depois a concatenação. Certo? Então, aqui nós
declaramos uma função com sucesso. Agora eu te disse, se tivermos uma função, temos que chamá-la. Então, como vamos chamá-lo simplesmente
escreverá um parâmetro
fino que é o nome da função e o
parêntese, é isso. E agora vamos executar o programa. Veja, esse parâmetro
é 12, ou seja, quatro mais dois é
66 em dois é 12. Portanto, essa é a primeira maneira de escrever uma função
que não tem nenhum tipo de retorno e que
não está recebendo nenhum argumento. Isso é que valores surdos estão sendo retornados
dentro da função. Ok, espero que você tenha
entendido até agora, porque agora
vamos para a próxima maneira
de escrever uma função, que é função
com argumentos. Como o nome sugere. Aqui, passaremos o argumento quando estivermos
chamando a função. Então, vamos supor aqui para
declarar os parâmetros, escreverei o primeiro tipo
de dados do parâmetro
que é int length
e, em seguida,
o segundo será int bread. Agora, se estamos
passando o valor, então não precisamos declarar o valor dentro da função. Então, vou removê-lo daqui. Agora a
parte da declaração está concluída. Mas se estamos
chamando uma função, então aqui está
mostrando esse erro porque podemos apenas ver a edição para
argumentos posicionais esperados que seja, temos que passar o
valor para primeiro I passará apenas cinco e
depois segundo também cinco, que esta terra e pão. Agora vamos ver novamente a saída. Veja que o parâmetro é 20. Então, o que será, será funtion
com argumentos passantes. É muito simples. Mas espero que você tenha
entendido porque este é um conceito muito central
da programação. Sem isso, você não
conseguirá entender mais adiante. Então eu vou sugerir que você
se você tiver alguma dúvida, você apenas pesquisa
por conta própria e tentou ir mais fundo no
lado do conceito. Agora vamos passar para o terceiro, que é função com
argumento e o tipo de retorno. Então, simplesmente, vamos
escrever a função de
terceira maneira definida com
argumento e o tipo de retorno. Então, como o próprio nome sugere, que ele terá argumentos como este e
teremos um tipo de retorno. Então agora o tipo de retorno
não estará aqui, vazio, será int. Agora você pode ver que o
corpo do dub de somador pode estar completo normalmente, mas não está retornando nenhum porque não está
retornando nenhum valor. Então, o que temos que fazer, não o imprimiríamos
dentro da função. Vamos apenas dizer que retorne
o valor do perímetro c, que a adição desapareceu. Então, aqui teremos um tipo de
retorno de inteiro já que ambos são inteiros e, após o cálculo
, ele se torna um número inteiro. É isso. Agora, se estamos retornando
dar valor significa, talvez
tenhamos que
pegá-lo em algum lugar. Então aqui vou apenas escrever int. Resultado é uma chamada
para encontrar o pedômetro. Agora, a variável de resultado
consistirá valor calculado
enviado pela função Duff. Então agora, se
quisermos, podemos simplesmente imprimir como o resultado do ponto phi. Então aqui. Agora temos que escrever a variável de parâmetro de resultado. Porque estamos armazenando
isso por esse nome. E também, se você quiser, você pode fazer mais alguns cálculos mais
adiante, como int. O total final é igual
ao motivo de um resultado. Além disso, você pode apenas escrever 200. E então aqui novamente imprima resultado
final. Depois. Então, depois de adicionar é, então encontre. Então, 10 K. Está mostrando algum assunto. E está tudo bem. Total final, desculpe. Certo, agora vamos executar o programa. Deve ser o primeiro
será 5 mais 5, 10,
20 e, em seguida, o segundo será
obviamente mais 100, 120. Então, fazemos esse
tipo de retorno normalmente para
que possamos ter mais alguns
cálculos depois. É como depois de quando um usuário, quando tentamos obter
a idade de um usuário, depois de ter essa idade, podemos fazer alguns cálculos. Vamos, vamos ver. Suponha que aqui
diga idade do usuário int. Certo? E simplesmente aqui vamos
escrever o retorno 20. Suponha. Agora, e se eu quiser primeiro int obter a idade
do usuário, a idade do redutor. E depois de obter a idade do usuário, faremos alguns
cálculos como
se a idade do usuário tiver menos de 18 anos, imprimir, ele não pode dirigir. Else. Imprima. Permitido dirigir um carro. Agora vamos comentar isso
e agora vamos executar. E espero que você saiba qual será
o resultado. Ele lerá. Caso contrário, porque estamos chegando em t Quando
estamos chamando a função. E então, a partir da declaração
if else, que já
aprendemos, vemos se o usuário permissão legal para
dirigir um carro ou não. Portanto, este é um uso muito
básico do assobio quando estamos construindo o aplicativo
completo, teremos um
uso mais avançado dessas funções. Agora, a última, outra
forma de escrever uma função, você pode apenas dizer que é
sintaxe abreviada, nossa flecha gorda. que significa que se o corpo da nossa função contiver apenas uma linha de código, podemos usar essa seta,
seta e esse tipo
de símbolo de seta. Você pode apenas dizer
uma bobina e
maior do que declarar a função
e torná-la nítida. Portanto, é apenas uma maneira de
limpar nosso código. E também na seção de notas, você pode ler em notação de
seta gorda, não
usamos as chaves e também não usamos a palavra-chave de
retorno. Então, dados, há
muito a digerir. Mais uma vez. Aqui vamos tentar com esta sintaxe int fat arrow. Aqui temos, estamos apenas retornando ou você pode ter apenas
uma linha de código. Então, a primeira coisa,
foi dito que
temos que remover os aparelhos encaracolados. Certo, nós o removemos. E segundo, não temos
essa declaração de retorno. Certo? E em vez disso, teremos essa flecha. Veja, ele está tão
legal e tão limpo. E agora, novamente,
vou mudar esse valor para 17. E vamos ver. O que é saída. Veja, ele não pode dirigir. que significa simplesmente que a função está fazendo
o mesmo de antes. Mas com essa sintaxe abreviada, ela parece mais limpa e
é mais fácil de ler. A dívida acaba de ser devolvida 17 e também existe esse tipo de
retorno, que é um número inteiro. E se você quiser aqui também, você pode fazer essas mudanças. Primeiro. Vou remover
os aparelhos encaracolados. Então eu removerei esses
retorno ou retorno e simplesmente, Sim, vou escrever a seta. E essa linha
de código que é, após o cálculo,
ela
retornará diretamente ao que estiver chamando. Vou comentar
e fazer isso novamente. E espero que o resultado
seja o mesmo de antes. Veja que o resultado é 20
após o resultado final, após a adição é 120. Então, quanto mais cedo, estava
parecendo muito confuso, mas com a
sintaxe abreviada, está melhorando. Então, espero que você tenha entendido
o básico da função. No próximo vídeo, vamos nos aprofundar mais nos
parâmetros e em seu tipo.
12. Os tipos de parâmetros em função: Agora é hora de se aprofundar
nos parâmetros e nos tipos. Então, anteriormente,
aprendemos a declarar uma função e como ela
aceita um parâmetro. Mas existem
maneiras diferentes de aceitar um parâmetro. Nesse diagrama, você
pode ver que
os parâmetros são de dois tipos,
opcionais e obrigatórios. Somente o nome, você
pode entendê-lo. Se for necessário, você
terá que passar o argumento. Ele mostrará um somador. E quando é opcional, os dados também tratam
tipos de opcionais que são particionais,
nomeados e padrão. Então, vamos entender cada
um passo a passo. Então, vamos começar. Primeiro, entenderemos quais são os parâmetros
necessários. Vamos trazer nosso editor de código e criar um nome de função,
nome de impressão. E suponha que ele aceite
argumentos como string name 1, string name 2, string
name tree. Certo? E vou apenas
imprimir os nomes como nome1 e Nome 2 e 3. Certo. Temos nosso
fundo em geral. Agora é hora de
chamá-lo como nome de impressão. Mas se o
chamarmos diretamente assim, ele mostrará um
somador porque é um tipo de parâmetro obrigatório, o que significa que temos que
enviar um valor. Vou enviar o Hulk, Homem de Ferro. E é por demanda. Vamos ver a saída. Ok, você pode ver todas
essas impressões. Portanto, é realmente básico e também
fizemos isso antes. Mas você precisa entender
o que é chamado e é chamado de tipo de parâmetro
obrigatório. Agora, o segundo
tipo é opcional. E, dentro do opcional,
estaremos entendendo o que é um parâmetro
opcional particional. Então, para tornar um parâmetro opcional
vi, use esses
colchetes, colchetes e polimento nulo significa que este hulk estará
na primeira posição,
ou seja, string 1. Este Homem de Ferro estará
na segunda posição
que é o nome também, porque esta é a
ordem como é boba. Vire aqui, veja se eu mudo a ordem como o
Homem-Aranha aqui. E eu não quis dizer aqui. Então isso, a saída
mudará, será alterada porque
é decidido posicionalmente qual deles é raro. Agora? Agora, se eu quiser tornar
essa árvore de nomes opcional, é, eu não quero. Se não for enviado, também está tudo bem. Assim. Temos que usar esse colchete
quadrado. Mas eles estão emitindo um
anúncio porque ele está escrito. Ele está mostrando que o
nome do parâmetro entra em contato com um valor nulo por causa de seu tipo
e seu tipo é string. Então, na versão mais recente, Dart introduziu algo
chamado segurança nula, o que simplesmente significa que,
se alguma
variável, variável, nossa função pode retornar um valor que pode ser nulo. Nesse caso, nesse caso, você precisa declarar esse tipo de
dados como anulável. O que pode ser feito com esse ponto de interrogação da
expressão. que significa simplesmente se eu tiver essa string e eu apenas
inserir um ponto de interrogação aqui, isso significa
que
esse valor, essa variável também pode
conter um nulo. O que no nosso caso é verdade. E agora, se eu executar o programa, veja Hulk e Homem-Aranha e null porque não
passamos um valor. Então aqui, esse conceito é muito, também muito importante
porque quando você está pedindo um valor ao
usuário, você, muitas das frescuras
podem ser opcionais. Suponha quais interesses são, que idade você tem ou quanto dinheiro você
no usuário
pode ou não querer
preencher essas fazendas. Então, nesse caso, você pode ter essas
variáveis como opcionais. E lembre-se, essa segurança nula
foi introduzida recentemente. Então, se você estiver assistindo a
algum vídeo para fazer R real, o que é suposto seis
meses ou um ano atrás. Portanto, ousa que este ponto de interrogação não
esteja sendo introduzido. Então você pode receber alguns erros. E aqui em baixo você pode ver
essas garantias nulas
porque elas são padrão
no Flutter Framework. Então eu, esse é o tipo de
parâmetro opcional. Agora eu tenho,
expliquei tudo aqui. Agora feito em seguida é
nomeado parâmetro. Agora isso é um pouco
interessante. Camada. Estávamos apenas usando
parâmetros particionais porque
há muito poucos argumentos
que estávamos passando. Mas suponha que tenhamos
muitos parâmetros que será muito difícil lembrar de
suas petições. Ou seja, em uma posição, seu nome na segunda
posição, sua idade, na terceira
posição, sua cidade. Nem sempre é possível
lembrar de todos esses. Então, nesse caso,
usamos parâmetros de nome, e aqui estaremos
usando chaves. Aprendemos a usar chaves quadradas, mas agora
usaremos aparelhos encaracolados. E simplesmente,
criarei uma nova função
que será chamada de gorda. Terceiro, ok, vou escrever int find volume. E então, nesse parâmetro, vou simplesmente escrever
chaves encaracoladas e, em seguida, int length, int, ler e escrever Clint e não imprimirei aqui, vou apenas retornar o
comprimento para o pão. E se eu quiser altura também
porque é o volume, declararei um
parâmetro de altura do somador. Agora você pode estar
vendo algumas áreas. Vou explicar você. O que é isso? Porque aqui o parâmetro
se torna opcional por padrão. Então você tem que usar
segurança nula dentro de chaves encaracoladas. Então, em parâmetros de nome, os valores se tornam
opção e isto
é, podem ser nulos. Temos que usar segurança nula, o
que é muito simples, pois
simplesmente usar ponto de interrogação, ponto de
interrogação , ponto de interrogação. Mas se você estiver usando
a marca do quociente aqui, ela mostrará algum
endereço também. Porque não podemos
fazer cálculos. Não podemos fazer esse
tipo de cálculos aqui se o valor for nulo. Então, nesse caso, vou verificar. Vamos tentar verificar
se o comprimento não é igual, comprimento igual a nulo
e pão igual a nulo e igual a nulo. Em seguida, volte. Mais uma vez. É esse tipo de situações que você encontrará
muito durante a programação. Então, para essa solução, você pode fazer uma coisa. Ou seja. Você pode simplesmente torná-lo opcional. Mas desculpe, faça dele um nome. Mas com a dívida de
palavra-chave necessária é essa função tem que
retornar um valor porque é
um conceito muito simples. Se estivermos fazendo qualquer tipo de cálculo
matemático, o valor deve ser fornecido. Então essa coisa necessária, certifique-se de que o valor
está sendo enviado. Agora, se eu chamar a função como encontrar volume, não
posso simplesmente passar
valor assim. Porque é um parâmetro name. Tem seu próprio nome, que podemos ver aqui. altura pode ser cinco, vírgula cinco e o comprimento pode ser cinco. Então, se você notar aqui, já que não é posicional, posso chamar o valor em qualquer posição porque
primeiro chamei altura, mas lá estava terra.
Então eu chamo pão. Estava vermelho, mas por
último estava alto. Mas eu chamo length
porque é um parâmetro name e
não precisamos lembrar as
posições dos argumentos. E simplesmente vou imprimir volume,
valor, desculpa, volume, ortografia, volume. E vamos correr e ver 125. Então, como é um argumento nomeado, d ou podemos
chamá-lo por esses nomes. E é muito mais
fácil porque pode ser nome, idade, salário. Não precisamos nos
lembrar de nada. Agora é hora de usar o final, comprá-los, seja qual for
esse parâmetro padrão. Agora, no mesmo caso, vou remover tudo isso e
escreverei o parâmetro padrão. No mesmo caso. Se não fosse necessário, se fosse assim. Nesse caso, o padrão ganha. Se o valor não estiver sendo enviado, teremos esse valor. Em vez disso. É como se o comprimento fosse um. altura lerá isso, e o pão será quatro. Então, aqui, se eu suposto
esquecer de enviar terras, então também o fará, o comprimento será um. Ou seja, vamos fazer isso também. Então, o cálculo você verá claramente dois em 51010 em 550. Veja, eu não enviei
o parâmetro land, mas era, já que
era padrão lá. E você pode
programar, ele não fica travado. Um bom exemplo é o perfil branco. E também lembre-se, podemos usar os parâmetros
posicional e nome ao mesmo tempo. Assim como a string, o host é igual ao convidado aqui será
o parâmetro padrão. E eu simplesmente imprimirei. O workshop é realizado pelo anfitrião. Certo? Agora, se eu
chamar a função, agora, concentre-se porque o primeiro parâmetro
é uma posição. Então eu tenho, eu não posso
simplesmente dizer trabalho, comprar e isso, Não, ele mostrará um somador para apoiar adicional Eu
tenho que escrever flutter. E o segundo é nomeado. Então, o host será suponho que o Google. E agora vamos executar o programa. Veja lisonjeado é
conduzido pelo Google. Mas suponha que, se eu
esquecer ou não quiser
dar o valor do
parâmetro do host, ele não
mostrará nenhum editor. E simplesmente se tornará
inundado é conduzido pelo hóspede. Então, se você vir um
exemplo do Facebook, você entenderá que haverá
convidados bem-vindos
e, após o login, será bem-vindo
seu nome de usuário. Este é um exemplo muito básico
do uso de parâmetros padrão. Então, espero que você tenha entendido
esse conceito profundamente. Isso é tudo o que é necessário
para o conceito de funções. Então, no próximo vídeo, aprenderemos
mais alguns conceitos de, opa, que são
aulas e objeto. Vejo você no próximo vídeo.
13. O que são cursos e objetos: Bem-vindo de volta. Nesta sessão,
falaremos sobre
programação orientada a objetos. Portanto, esse conceito está disponível em outra linguagem de programação, pois
soldada é Java, PHP por 10. Por isso, inclui como vemos nossa cotação ou como
organizamos nosso código. Objeto significa qualquer objeto que
existe na vida real. Se você vir um carro, nossos alunos, nosso livro, você pode ver que tudo isso pode ser combinado em suas
próprias classes. Vamos ver. Primeiro o que eu quis dizer. Vou remover tudo. E depois classes e objetos. Este é um tópico que
abordaremos hoje. Então, suponha que haja um nome de string de dados seja
igual a delegados B. Só estou inspirado por eles. Então, faculdade de cordas, você pode ver como a Primeira Guerra Mundial
acho que C uma corda, ok? Marcas Int. Ele não faz sentido
dar marcas a Bill Gates. Suponho saber. Estes são os dados de
quer alugar densos. É por isso que é possível apenas anotá-lo
assim e trazê-lo, imprimi-lo um por um. Mas e se
houver muitos sprints? Então, obviamente, você quer apenas
sentar e escrever string. O nome dois é igual a elon Musk. Assim, porque
não faz nenhum sentido. Aqui. Se você perceber que todos eles
foram adicionados ao nosso nome, as marcas da
faculdade podem ser combinadas em uma classe
chamada Estudante. E então podemos mencionar essas variáveis são propriedades
intrínsecas porque quando estamos falando de programação
orientada a objetos, as variáveis são conhecidas como propriedades e funções
são conhecidas como métodos. Ambos são os mesmos quando
entra nessa aula. Se o nome deles
mudou, nada, quando não
faz sentido para mim por que chamamos isso assim. Mas você, você entenderá. Você não precisa
pensar muito. Então, vamos começar. O que é isso? Classe? Uma
classe é um blueprint. Nosso destaque comum
a todos os seus objetos. Objeto, vamos
entender de certa forma. Mas você poderia, você pode apenas
a partir da definição só
pode entender São os recursos
comuns nos dados da Alda. Então, nós apenas fazemos dela
uma aula separada. O exemplo é a classe do aluno. Todos os alunos terão
seu ID e nome. Todos os alunos desempenham funções
como estudar e brincar. Para que possamos fazer disso
uma aula. Na aula. Funções, em classe, desculpe, as funções são chamadas de métodos e as variáveis são
chamadas de propriedades. Como eu discuti anteriormente, que estes são apenas
intercambiáveis, mas são chamados assim. Agora vamos criar uma nova classe de ID de aluno de primeira classe, nome de
string. Então 30. Suponha girar e apenas jogar. Brent, jogando. Então agora a coisa
é que essa classe tem que estar fora da nossa função principal. E aqui está mostrando um erro porque
não mencionamos que essa variável
será nula ou não. Então, desde que não o fizemos. Atribuir qualquer valor
tornará a segurança nula porque se
tivéssemos um sinal como este, então é uma situação diferente. Mas neste momento
não há valor sendo atribuído. Então você pode dizer que se eu
mencionei essa classe aqui até, e a menos que um objeto
tenha sido criado, ele não armazena nenhuma memória. Então você pode estar perguntando, eu usei a palavra
objeto várias vezes. Então, o que exatamente
um objeto significa? Um objeto é
algo que
atribuiremos valor, nosso acesso, todas as variáveis e
métodos definidos em uma classe que essas
variáveis em funções, você pode dizer em nosso exemplo que as
variáveis são ID e nome, e a função é 30, e reproduzir. Então, definimos
isso, essas propriedades, mas obviamente em nossa aplicação temos que fazer algo para fazer uso da
propriedade e ousar o conceito de objetos
entrar em jogo. Então nós, tivemos isso durante a aula, mas agora e
se quisermos entrar é ser isso, então temos que fazer uma
instância da classe. Vamos tentar. Vamos apenas escrever um aluno, um é igual ao aluno
e, em seguida, parênteses, é chamado assim. Essa é a
criação de objetos, você pode dizer. Então você verá que podemos apenas
esticar para alugar um ponto. E então podemos
acessar tudo. Primeiro, atribuirei
um ID como um. E então o
nome de um ponto do aluno é igual a Bill Gates. Agora, se eu imprimir um nome de ponto do
aluno, e se eu imprimi acima, é quando
não atribuímos. Vamos ver a saída. Veja primeiro que é nulo porque não
atribuímos o valor. Mas depois que você pode
ver se escrevemos como este ponto e depois
acessamos essa propriedade, podemos atribuir essa
propriedade de valor. E se você quiser
acessar a função, você pode
dizer diretamente o aluno 130. Veja. Agora ele mostrará estudando
e eu apenas removerei isso. Certo? Este é um objeto. Ou seja, este é um. Agora, se você quiser,
você pode simplesmente criar várias strings como
essa para alugar para se opor. Mais uma vez, objeto. E, em seguida, o
ID do aluno para ponto é igual a dois. Então agora você pode estar pensando
ou você pode ver essa atribuição de valor não
está um pouco limpa, você pode dizer porque
temos que fazer ponto this.name. Nós tendemos a escrevê-lo de
novo e de novo. Então, para enfrentar ou
resolver essa coisa, o conceito de
construtores vivos. Então você sabe, novamente você
perguntará, o que são construtores? Isso é novamente, um conceito de programação orientada a
objetos. Os construtores são como
funções dentro de uma classe, que serão executadas antes de executar qualquer outro código nessa classe. Independentemente da posição,
explicarei como qualquer outro
método deve ser chamado. Mas mesmo que não
chamemos o construtor, ele será executado automaticamente
. É quem pode estar
pensando o que está acontecendo. O que é exatamente um construtor? Primeiro, vou simplesmente ensiná-lo a
definir um construtor. Um construtor é declarado
escrevendo o nome da classe. Parênteses, o
nome da classe é aluno, e esse parêntese
é assim. Certo? Então, este é um construtor. E quando mencionei que ele será executado primeiro
independentemente de sua posicionalidade, Se eu escrever no disco
construído no último também agora, então então então, primeiro de outono
quando criamos um objeto, isso será chamado
e você pode apenas vê-los e estes são basicamente economizam dinheiro por sua aparência ou você pode
comprar como está escrito. Ambos são os mesmos. E a segunda característica estrutura
africana é que um construtor
é como uma função I, como eu disse, mas não tem
nenhuma perna desse tipo de retorno. Eles não retornam nada. Ele só pode ser executado. Dentro dessa classe, o que
fazemos na maioria das vezes é atribuir um valor. E primeiro de eu vou mostrar um construtor e
apenas escrever impressão. Este é um construtor. E desculpe pelo ponto e vírgula. E eu vou novamente apenas
criar uma classe. E agora você vê que o código está
escrito de cima para baixo. Mas antes de tudo, isso será impresso a partir daí, só você pode entender que o construído é executado no
início. Veja que este é um construído, então, Bill Gates e depois estudando. Então este é o, esse é o significado
de um construtor. Lembre-se que é
o mesmo nome que o nome da classe e eles
não retornam nada. Você, agora você vai me perguntar. Então k, eu entendi
o construtor, mas qual é o uso dele? Então, principalmente temos antes dos EUA, devemos saber o que é um construtor
parametrizado. Assim como em uma função normal, como enviamos parâmetro ou
como enviamos argumentos. Da mesma maneira. Temos que enviar um parâmetro
para um construtor de disco. E então esse parâmetro
será atribuído. Ou seja, o valor
será atribuído
à variável presente
nessa classe. Simplesmente, aqui, estávamos
atribuindo assim, mas agora em diante,
vamos apenas enviá-lo. E então ele será
atribuído como, como,
Vamos escrever os parâmetros em primeiro lugar,
int id e, em seguida, nome da string. Certo? E, em seguida, a
primeira coisa será que esse ID de ponto é igual a eu
vou nomeá-lo ID do aluno. Apenas também, só para que
os nomes sejam diferentes. E esse será o nome do aluno. Este nome de ponto é
igual a 210 nome. Agora, vendo agora que temos, é obrigatório
enviar isso ao valor. O primeiro será, acho que o primeiro é id
e o segundo é o nome. Agora não preciso
mencionar aqui. E se eu correr de novo, você verá a mesma coisa. Porque se você quiser verificar, eu enviarei um 100. E então vamos verificar o ID. Então, ID, então essa turma de aluno
agora pode atribuir um valor. Esse conceito
será usado muito tempo ao construir um
aplicativo amarelo usando flutter. Próximo exemplo, você
pode simplesmente ver se var student para ele tão fácil agora criar objetos
foi escrito para então 99. E então Mark sucker berg. E então eu vou apenas dizer ao
aluno para o nome do ponto. Você só verá, veja, isso é construído duas vezes. É chamado porque
estamos criando dois objetos. Esse é o principal motivo. Então, espero que você tenha
entendido o conceito de classes, objetos
e construídos. Você só precisa entender
isso muito mais V. Veremos onde ele está sendo usado quando estivermos na sessão de flutter. Então isso é tudo por hoje. Obrigado.
14. Tipo e heranças genéricos: Agora vamos discutir
sobre o próximo tópico, que é o que nossas
coleções de tipos genéricos são
heterogêneas por padrão. Isso significa que coleções
como mapa de listas podem conter vários valores
de diferentes tipos. Só por exemplo. Mais uma vez, gostaria de
remover tudo isso para que
possamos entender esse conceito. Tipo genérico. Normalmente, o que acontece
é se tivermos uma lista de, você pode dizer usuário, então essa lista pode ter primeira string, ou seja, marca. Em seguida, os segundos dados
podem estar no professor. E os terceiros dados podem ser booleanos. Você pode dizer verdade. Certo? Então o que aconteceu
é que estamos usando, estamos inserindo vários
tipos de dados na lista de dívidas, o que é bom se
isso for exigido por essa função específica, você pode dizer uma tarefa específica. O conceito de genética
pode ser usado para alcançar um rigor estritamente
nos tipos de dados. Ou seja, se mencionarmos
que esse usuário deslistará, a lista de
usuários
conterá apenas cadeias , então ela garante que não
haverá erro. Vital, estamos construindo esse aplicativo porque não
queremos que o usuário, a pessoa que está usando nosso aplicativo apenas
insira o que morrer ele queria para nossas variáveis
porque mostrará um erro se qualquer pessoa tenta atribuir
valores diferentes nessa configuração. E um tipo genérico é declarado simplesmente usando
menos que, maior que. Isso está aqui. Liste, em seguida, string. Isso significa que esta lista conterá
apenas string. Agora eu tenho que escrever. E então Jeff, veja, agora o erro se foi porque estamos fazendo o que está sendo
mencionado em nosso programa. Da mesma forma, se
quisermos, podemos usar menos tinta. Marcas é igual a 33, 44, 55. Se eu tentei a cadeia de antenas, ela mostrará um erro porque a string de tipo de elemento
podemos atribuir a esse tipo de lista inteiro? Por isso, é muito conveniente
muitas vezes. E também discutimos lista, mas e se houver um mapa? Como o mapa costumava ser como o nome da
string, então um valor. Suponha que mais sobrou? Eu era como o Tom. E então vamos deixar 22 finais de semana reconhecíveis
se for normal que não tenhamos
mencionado nenhum tipo. Mas se você quiser restringi-lo, então podemos apenas escrever string será a chave na maioria
das vezes, obviamente. E, em seguida, um
valor, o valor será somente string. Nesse caso, esta
árvore 20 mostrará um somador. Temos que dar uma corda. Suponha que
idade, legis adulta. Só estou dando um exemplo. Da mesma forma,
usamos Alistar e mapear. genética pode ser usada para qualquer coisa, como objeto de
função de vidro. Você pode me perguntar como é a
função. Se houver uma função, não
estou recebendo
um exemplo agora. Mas suponha que, se
houver uma string de função. Lista, o nome da função
será o que for. Dê, adicione os dados. Então é, é o
tipo de retorno paga uma lista. Mas e se nós apenas mencionarmos a
lista de números inteiros aqui? Portanto, esse retorno só deve
conter números inteiros como este. Assim, enquanto o local verá o código de
flutter de replicação plana real, você verá esse
tipo genérico muito tempo. Agora, nosso próximo conceito
é sobre acessibilidade, o que significa simplesmente, geralmente se você está vindo de
outra linguagem de programação, você deve conhecer o conceito
de público e privado. As propriedades são variáveis
ou qualquer função. Por padrão, todas as variáveis
e funções são públicas e acessíveis
ao objeto semanalmente, suponha que haja uma classe. Estudante. A aula de estudo
deve ser assim. Portanto, esse int id 2 é acessível por seu objeto, como um ID de ponto do aluno. Mas se quisermos torná-lo
uma dívida privada significa sobre o desiluminado Dentro desta classe, esses dados serão
acessados não fora. Então, nesse caso, se você, se você puder
ver isso aqui, é a questão de, você pode dizer normalmente, esta é a questão do ponto pad, mas vamos tentar imprimir porque no VS Code aqui se
você conseguir ver esse ID. Mas quando usaremos uma linguagem de programação
real, você pode ver quando estamos
trabalhando no VS Code, isso não acontecerá
porque sempre que fizermos qualquer propriedade dentro da nossa classe, propriedade
privada, não
será acesso por seus objetos. Então meu TED é simplesmente usar sublinhado antes
do nome da variável. É assim que o tornamos privado. E você pode pensar, não, não está funcionando aqui, mas isso não é verdade. Isso está em algum
problema do trackpad, que será resolvido quando estivermos
usando qualquer editor de texto. Mas agora, o
único foco deve ser entender o conceito. Então, sim, fizemos essa parte que está
controlando a acessibilidade, o que significa simplesmente como tornar uma função R variável
privada dentro da classe. Então o próximo conceito que estaremos entendendo é
o que é herança? Esse é outro conceito em programação orientada a
objetos. Então, suponha que tenhamos duas aulas. Você pode ver esse slide. Há duas
aulas, cachorro e gato. Dentro dos dados de dois óculos algumas propriedades são alguns
métodos que são comuns. Podemos dizer que primeiro é cor
e o segundo é comer. Então, se houver apenas uma ou
duas vantagens, então é AKI. Mas o que acontece se
tivermos várias aulas? E essas aulas também têm essa função que também
é gato e cachorro. Certo? Mas e se
houver algum pássaro de perna? Então, eles também terão uma
coloração na função Comer. Então, nesse caso, podemos apenas fazer um, podemos apenas fazer uma, outra classe que será
a classe pai. Você pode simplesmente enviar. Essa classe, pode ser estendida ou pode ser copiada
por suas classes mais baixas. Então você pode ver a semana, faremos uma aula
separada e colocaremos essas
características comuns. Vamos fazer isso e tentar. Sim, certo? Em conceito pesado e
denso. Primeiro de tudo, vou escrever
a classe dos pais como animal. E então ele terá
corda, cor e vazio. Vazio. Isso significa que isso
é uma função. Agora vamos ver, eu
tenho uma classe de col, de tag de nome e ela terá
uma propriedade da raça String. E segundo, ele
terá ampla por propriedade. Vamos torná-lo nulo. Agora, o que acontece se eu
criar um objeto de cachorro? O cão é igual a um cachorro assim. E então, se eu
tentasse acessar o ponto de cachorro, ele só mostrará
raça e parque. Mas e se também
quisermos essa cor? Nesse caso, o conceito
de herança vem. Agora nós simplesmente temos que a
aula estende animal. Certo? Esta palavra-chave extends é usada
quando estamos herdando. Então agora, se eu escrever doc dot c v, você
também pode ver a cor e comer também. E se você quiser, podemos chamar diretamente a função de TI
como comer impressão. E agora R1, C, Você pode ver comer. Então aqui
o cão é chamado de classe infantil, e esse animal é
chamado de classe de pais. E essa classe está herdando
dessa classe animal, herdando balas, essas
propriedades e métodos. Ele também pode ser usado
nesta classe. Então, é bom. E essa extensão
será usada no Flutter. Eu não usei muito
porque na Flórida tudo, eles já estão sendo estendidos. Internamente. Só temos que escrever a palavra-chave e é isso. Nós, é muito raro
criarmos nossas próprias classes
e herdá-las. Isso só depende do
seu uso. Dito isso. Então, espero que você tenha entendido o conceito de herança e , em seguida, como tornar uma variável privada como Lex simplesmente
esse sublinhado. E esse tipo genérico. O tipo genérico é usado principalmente
com lista, mapa e edição. Portanto, dívidas para a
parte orientada a objetos da linguagem escura.
15. Manipulação de exceção usando o Try Catch: Nesta sessão,
falaremos sobre o tratamento de
exceções. Então, se você estiver disposto a
qualquer aplicativo, definitivamente haverá momentos que você
encontrará alguns erros. São esses erros
na linguagem de programação,
é chamado de exceção. Então você pode ver
a definição aqui. Quando um programa termina
abruptamente ou tem um erro, essa situação é
conhecida como uma exceção. Então, definitivamente, todos sabem
que haverá um erro, então é melhor lidar com isso acordo para que nosso
aplicativo não trave. Agora, o que é esse bloco
try catch? Então, apenas pelo nome, você pode entendê-lo. Primeiro, vamos tentar
esse bloco de código. E se houver alguma adição, pegue o erro e
faça algo com ele. Portanto, esse é o significado
dessa afirmação. Ok, agora, vamos tentar em nossa almofada
escura porque obviamente, é bom se fizermos isso. Agora. E é ter uma nova
variável do ano 2021. E então int 0 é igual a 0. Então, espero que você saiba que os
números não podem ser divididos por 0. Então, se dizermos que int
result é igual a IR dividido por 0, então, no momento, ele
mostrará infinito, mas eu vou. Certo? Agora veja nosso tipo de duplo pode ser atribuído a
uma variável do tipo int. Porque quando estamos nos
dividindo assim,
esse resultado virá
em um ponto decimal. Para evitar isso,
usaremos esse símbolo. Ele faz o quê? Ele simplesmente obtém o primeiro valor e você remove a parte
decimal. Agora, se eu executá-lo no console, você receberá esse erro aqui e
suportará erro não detectado, operação
não suportada. Então você pode ver que já foi mencionado aqui
que é uma edição sem cortes. Então, agora, para resolver isso, usaremos esse bloco
try catch. E está escrito assim. Primeiro try and catch
é uma função. E este E, vamos pegá-los. Ou você pode dizer que será
armazenado nesta variável e, para que possamos usar e prever. Agora, vamos tentar isso e trazê-lo aqui. Certo? E vamos bem. Agora, primeiro vou escrever uma exceção
manipulada, depois E, isso é qualquer que seja
a exceção que ela está lá. Então, uma luz era de cor vermelha. Agora veja, é uma impressora normal, impressão, não uma exceção. É como exceção manipulada e, em seguida, operação não suportada. Então, esse é o caminho, como eu pegaria o código? Por exemplo, assim como você, nesse try-catch,
há alguma chamada de banco de dados. E, obviamente, haverá momentos em que suponha que o
servidor tenha algum assunto, a Internet não está funcionando. Nesse caso, vamos
pegar o somador e mostrar que algum tipo de caixa de
diálogo está alerta para o usuário em relação a isso mesmo ,
em vez de falhas de nosso
aplicativo ,
falhas, e isso será muito experiência ruim
para o usuário. Então você pode ver a partir do slide, é
assim que
lidamos com uma exceção. Outro exemplo de exceção
pode ser ter uma lista. Então, vamos supor que
temos uma lista de marcas e ela conterá 30
ângulos qualquer semi-sólido, ok? Ele conterá três vale. Então, o índice começará a
partir de 0 e terminará 12. Então, o que acontecerá? Se tentarmos imprimir a árvore de marcas, que não está lá na lista. Então, definitivamente, ele
deve mostrar um erro, mas o erro é tratado. E C, erro de intervalo, índice fora do intervalo. índice deve ser menor que três. E se eu escrever dois, então simplesmente imprimirá a
soma D7 e este bloco de captura,
obviamente, como não
há erro, Este telefone será executado. Então, espero que você tenha entendido o conceito de
manipulação de exceções usando try-catch quando estiver trabalhando em um
terceiro aplicativo. Este bloco try and catch
será usado intensamente porque
garantiremos que nenhum erro ou não, nenhuma situação deve
ocorrer onde o usuário deve ficar irritado e
desinstalar nosso aplicativo. Pois, ok, mais disso vamos aprender na seção
inundada. É isso.
16. Variáveis e métodos estáticos: Então, nesta sessão,
entenderemos o que as variáveis estáticas
e os métodos estáticos. Então, se você ouviu falar sobre
essa estática e coisas, então é novamente o conceito de programação orientada a
objetos. E vamos ter uma
turma de alunos. Então agora estou falando de propriedades
estáticas. Então, lembre-se das variáveis da
instância também. Então, variável de instância de água, se mencionarmos como
int Marx é igual a 0. Esta é uma variável de instância. Certo? E simplesmente, se eu quiser
declarar uma variável estática, vou escrever essa palavra-chave. E então o que devo escrever? O usuário tem marcas. Vou apenas escrever pontuação. Sim, apenas por exemplo. Essa é a variável de tick. Essa variável estática, apenas
adoçando a palavra-chave estática, torna-se uma variável estática. Então você pode estar pensando,
qual é a diferença? Só chegaremos
a isso em um tempo. Agora vamos ter uma função
que também é método. Amplo. Na Grécia, Marx, eu deveria apenas marcas de ponto e vírgula
mais mais e dizendo, vou apenas dizer vazio, aumentar a pontuação e
direita, pontuação mais, mais. Essa é nossa variável de instância. Vou remover tudo isso. Agora. Para acessar uma variável de
instância, precisamos criar um objeto. Então, já
fizemos isso antes. Guerra. O nome da string é igual a, este é um objeto. E depois disso, se eu escrever impressão e quiser imprimir marcas, simplesmente
estudarei marcas de um ponto. E essa chamada, vou
fazer isso a partir de dez e vou apenas dizer mais 10, que será
incrementado menos de 10, para que não fiquemos confusos. Agora. Ok, se eu correr agora, ele imprimirá 0. O que, o quê, e se eu
quiser imprimir a pontuação? Então, vamos tentar com o objeto. Criamos o aluno um ponto c. Se eu escrever ponto, a pontuação não será acessível. Não é acessível porque
é valor estético. Propriedade estática. Para acessar isso, temos que fazer isso
diretamente a partir do nome da
classe que é aluno,
é o nome da classe, em
seguida, ponto Dense core C. Então isso é uma abordagem diferente
ou um conceito diferente. Você precisa se lembrar que, se quisermos acessar a variável de
instância
, temos que criar
um objeto primeiro. Mas se tivermos uma variável
estática, não precisamos
criar nenhum objeto para
essa classe diretamente. Podemos acessar o valor. Certo? Se você entendeu até agora. Agora, eu gostaria de
fazer o que eu
gostaria de acessar a um
ponto final na Grécia, Marx. E vou ler o aumento de
um ponto do aluno. Então, é a ortografia de Turim errada. Aluno um ponto aumenta o núcleo. Certo? E, novamente, vou colocar
nossos valores aqui. Mas espero que você saiba qual
será a resposta. Será então 12, de fato, aqui em
baixo, 120. Certo? Agora, vamos fazer uma coisa. Criaremos outro objeto. aluno Var dois é igual a. Estudante, ok,
temos um novo objeto. Então, se eu escrever aluno de
impressão para marcas de ponto. E então, para fazer isso, vou aumentar a pontuação. Ok, essa é a variável
estática, mas estou fazendo isso com
o segundo objeto. Então, em sua mente, você pode pensar, agora
se eu imprimir novamente, se eu imprimir novamente, faz isso representando um Phi, agora estamos em coisa estática. Então ele dispara apenas
ter essa pontuação é 10. E, novamente, de fato, porque é um novo
objeto, Vamos executar. Mas você só verá
a diferença aqui. Veja isso marca
o aluno de que Marx é 0. Mas essa
pontuação de pontos do aluno é continuação. Ou seja, a partir do primeiro objeto fizemos algumas mudanças do
segundo mundo do objeto, assim como alguma variável
estática tenuto. Mas todo esse ano depurado
serão objetos diferentes, mas o valor será visto. Mas, no caso de uma variável de
instância, ela começará novamente a partir de 0. Portanto, essa é a principal diferença
entre a variável de
instância estática. Dívida é
variável de instância será chamada ou será iniciada
várias vezes, mas seu valor estático
será inicializado para um. Depois que os mesmos dados forem
buscados da memória, pelo
menos eles viverão a memória
eficiente porque na maioria
das vezes sabemos reunir alguns dados que não serão
alterados nessa classe. Suponha que haja um aluno, então o nome da faculdade
suponha que não mude, suponha que haja
um banco de classe bancária. Esse nome do banco é algo que é
único e não muda. Então, o que fazemos,
podemos não querer usar
a memória de
criá-lo de novo e de novo. Nesse caso, usamos
a palavra-chave estática. Espero que você tenha entendido que é apenas a
diferença que uma variável de instância consome mais memória porque
EBIT cada objeto, é inicializado a partir de 0,
ou seja, desde o início. Mas a estática vamos
ficar grande continuada. O mesmo valor
continuará. Agora, você entendeu propriedades
estáticas
que esses t. Agora é hora de você
entender estática. Bem, o que é
chamado de método, basta escrever
a palavra-chave estática antes de um método. É isso. Mas se você torná-lo estático, definitivamente ele não será
acessível através do objeto. Então, não vou
sugerir que mude isso, mas terei apenas retorno estático, vazio, string, faculdade. Certo. Agora, para acessar isso, simplesmente
temos que ler a faculdade de estudantes
impressos assim. Então lembre-se, isso não
é um objeto. Estamos acessando
diretamente por meio do nome da classe. Objeto é esse. E isso. Esses dois são objetos que
só podem acessar diretamente a variável de instância
ou a instância. Meus filhos. Vou
apenas escrevê-lo aqui. É o método de instância. Esta é a instância minha hora, mas esse é um método estático. Então, esta era a lógica por trás das palavras-chave de instância
e estática decimal. Espero que você tenha entendido
e gostado até agora. Agora, estamos prestes
a terminar nosso curso. E depois disso,
mergulharemos diretamente no Flutter.
17. Operador de ternário e segurança null: Agora, por último,
restam apenas alguns
conceitos , são difíceis deles. O primeiro conceito é chamado
de operadores ternários. Então, vou escrever um operador
ternário. Então você pode perguntar, o que é um operador ternário? Não é nada além de evitar
escrever declaração if else. Então você só sabe como
escrever difere isso se. E então aqui
simplesmente assim. Suponha que eu tenha um valor
int age é igual a 25. Para aqui. Vou
escrever apenas se a idade for 18, impressão permitida, suponha. E, se não, a
impressão não é permitida. Certo? Então esta é a nossa declaração normal if
else para você pode estar perguntando o que
é um retorno de tornado? Portanto, os operadores ternários estão
acostumados a
espalhar o código que escrevemos ou
apenas para garantir que ele esteja muito limpo. Quando escrevemos. Não acontece, não é como se não estivesse
ocupando muito espaço. É apenas a idade certa. Maior que 18. Se for verdade, imprima. Sim. Else imprima. Não. Veja, este é o operador
ternário. L é francês aqui novamente, isso, e então este programa de
gênero é executado. E veja que temos a saída, sim. Portanto, o operador ternário é uma maneira de escrever a instrução
if-else. E sim, você o
usará muito tempo porque
você pode ver a diferença. Figura os próprios olhos. Essa é apenas uma linha de código. Anteriormente, temos duas raízes, tantos códigos para fazer
a mesma coisa. Então, apenas escrito como a
condição e o mapa do quociente. Ou seja, se a
condição é verdadeira, então o que temos que fazer, e com essa coluna, significa
que se essa
condição não é verdadeira, então o que temos que
fazer, simples assim. Agora, esse
operador ternário acabou, o conceito acabou. Depois disso. Nosso
conceito final e importante é a segurança nula. Anteriormente também você usou essa segurança nula,
se você se
lembrar, era a marca de quociente
nesse tipo, o que significa que você também pode
conter nulo. Essa segurança nula foi
introduzida muito recentemente. Então, se você voltar,
seis meses atrás ou no início
do final de 2020, você pode dizer que não
estará ouvindo ou não usará
essa segurança de notas porque não estava
no modo de produção. Aconteceu em março de 2021. O conceito de segurança nula
foi introduzido oficialmente. Quando declaramos qualquer variável, ela pode conter valor ou pode
ser deixada nula por padrão. Isso pode criar erros
quando estamos nisso. É por isso que o conceito de segurança
nula foi introduzido. Agora, quando declaramos
qualquer variável, presume-se que ela não será nula, a menos que declaremos
usar determinada palavra-chave, que discutiremos mais adiante. Agora a segurança
já estava ativada. Veja aqui, baixos. Já estava ativado aqui. E em flutter,
ele está ativado por padrão, então você não tem outra
opção de remover. Então, o que foi introduzido
no conceito de segurança nula aqui com algumas novas palavras-chave ou operadores. Primeiro é esse ponto de interrogação, que já usamos antes. Usamos isso para denotar que a
variável pode continuar. valor real também pode ser nulo. Nesse caso, neste caso, já
sabemos
que o valor pode ser nulo e vamos lidar com
isso de acordo. Não haverá escopo para nenhuma exceção desconhecida,
editar o tanque integrando. Como eu levo como Lake, havia uma variável, suponha que string
conterá um ID de usuário. E se isso for nulo, será um grande problema porque
não poderemos buscar nenhuma informação do
nosso banco de dados sem
o ID do usuário. Vamos anotá-lo. Vamos escrever se esse amigo de cordas for igual a Elon Musk, ok? Então, não está
mostrando nenhum erro. Mas o que acontecerá se
escrevermos se string for nula? Agora isso mostrará um erro porque não podemos atribuir
um valor a uma string. Mas se nós, se soubermos que
esse valor pode ser nulo, então teremos que
usar esse operador. Agora, não há um problema. Então, essa
variável de amigo será nula. Essa variável de amigo
conterá uma string como essa. Portanto, esse é o uso da palavra-chave de marca de
quociente. Vamos fazer isso. Vamos fazer mais alguma coisa. Suponha que tenhamos um amigo conjunto de funções. Ele conterá um
nome e não aceitará um nome. E vamos apenas dizer
nome ponto ToupperCase. E chamaremos essa função aqui. Vamos correr. Acabei de fazer isso. Agora vamos correr. Obviamente. Essa função não foi, foi escrita abaixo, então
estava mostrando um somador. Agora, o que acontecerá se
tentarmos enviar um valor nulo? Neste caso? Agora ele mostrará um erro porque null
não pode ser enviado para uma string. Mas se tornarmos nula segurança, essa área desaparecerá, mas o erro estará aqui
porque se for nulo, então como essa função
será executada. Porque estamos vendo que a variável de nome num
será nula. Mas, novamente, será adicionado pois temos algum
tipo de função. Para lidar com isso. Temos que verificar aqui. Se o nome for igual a nulo, somente aqui retornarei a função e
não executarei abaixo. Então, agora essa é uma maneira adequada de verificar se o valor
é nulo ou não. Portanto, esse conceito é
muito importante. E há outra
palavra-chave para verificar. Se um valor for nulo, R nada, que é essa palavra-chave, marca de
quociente e ponto, que usaremos. Agora, vamos ver. Veja nulo. Portanto, está verificando se
esse nome é nulo ou não. Se for nulo, então apenas
sprint out null são, se é um nome que
é Bill Gates, então o que acontecerá? Ele executará a função. Esta é uma maneira melhor de
apenas verificar o nulo. Nulo. O que você diz, se alguma
variável for nula ou não. Depois disso, a próxima
palavra-chave é necessária. Isso é um, esta
é uma mudança que está sendo feita nesse código. Se você se lembra de como, o que, onde, nome, argumentos. Ele vai gostar
disso e apenas dizer nome da
string e imprimir seu nome. Ele mostrará um erro porque o nome pode ser
valor, pode ser nulo. Então, ou temos que
usar esse ponto de interrogação. Para resolver isso. Estamos simplesmente escrevendo a palavra-chave
obrigatória aqui. Sim, essa palavra-chave, o que simplesmente significa que temos que
enviar um valor. Não podemos simplesmente
enviá-lo para essa função. Portanto, a dívida é a palavra-chave
necessária pelo usuário principalmente nesse tempo juro que
os valores podem ser opcionais. Isso está no parâmetro name r.
Se você não quiser escrever, eles não querem
escrever requerem, então a outra coisa
é apenas dar um valor padrão que
é suposto convidado, assim e será igual. Portanto, esse é um valor padrão. Se o nome da string
estiver contendo nulo, vou testar
meu nome e enviar aqui. Desculpe, deve ser pelo
menos string. Se eu não estiver enviando nada, então será o nome. Porque não estou
dizendo que será nulo porque podemos torná-lo opcional. E se eu escrever máscara de aprendizado P, então o que acontecerá? É, já que é um argumento de nome, deveria ser assim. Valor C estamos programando. Temos que nos
certificar de que
não cometemos todos esses tipos de erros. Você precisa se lembrar
da diferença entre uma variável de nome, parâmetro de
nome e um parâmetro
posicional. Então, espero que você tenha
entendido um pouco sobre segurança, porque esse conceito é
muito importante. Depois disso, a próxima palavra-chave, que é essa
exclamação para dizer
ao compilador que temos muita
certeza de que você não será nulo. Estamos confiantes de que a variável sempre
terá um valor. Então, somente
usaremos essa palavra-chave. Vamos experimentá-lo por conta própria. Agora, vamos supor que
temos essa coisa. Novo nome, variável
que pode ser nula. Temos aqui. E o que acontecerá se eu
enviar essa string para eles, minha função name, que também
aceita um parâmetro name, que é uma string. Se eu escrever um novo nome, aqui, você verá que ele mostrará
um erro porque estamos enviando uma string que é uma string
anulável para uma string. Mas o que acontecerá se
mantivermos uma exclamação aqui? O que significa que temos muita certeza de
que isso está tendo um valor. Então, para
ter certeza de que temos alguma coisa, eles têm muita certeza de que você não
será nulo no futuro. Além disso, usamos essa exclamação. Mas lembre-se que essa exclamação
é uma coisa muito complicada. Porque se estivermos
errados com a nossa coisa, dívida de
aposentadoria significa
que
se você está dizendo que o valor não será nulo, e se o valor for nulo, então teremos esse tipo de erro em nosso aplicativo,
o que não é bom. Então você pode estar pensando que
é demais para digerir, mas apenas ter alguns pacientes
porque definitivamente. Quando estivermos no curso de
flutter, entenderemos todos esses
conceitos com muita clareza. Então, entendemos
palavras-chave como ponto de interrogação, exclamação e, em seguida, a palavra-chave
necessária. Agora, a última alteração
é a palavra-chave late. É muito simples. Essa palavra-chave é usada quando
temos a certeza de que
inicializaremos o valor
dessa variável posteriormente. O que significa que, não importa o que, quando o objeto dessa
classe for criado por spin, inicializaremos nosso v, garantiremos que a
variável não seja nula. Então lembre-se se
você deixar que ela se esqueça um remetente válido para uma
string ou uma variável, ele mostrará erro. Então, se você tem uma
turma de alunos, podemos apenas escrever int id tardio, assim, tarde,
desculpe nome da string. E isso significa que esse
ID será impresso. Arábia Saudita não será deixada
nula, não importa o que aconteça. Então, se tivermos a função de id de impressão, certo, Mas int id. Então, está tudo bem. Não mostrará nenhuma era, mas se removermos o botão
tardio, veja, então ele será DID é um erro porque está
mostrando que primeiro,
por favor, tenha um valor aqui
como fazer árvore, como este. Mas usando a palavra-chave let, podemos remover esse
editor e apenas dizer
ao compilador que não
leva tanto estresse. Sabemos que essa variável é
importante e
garantiremos que ela tenha um valor no
final da criação do objeto. Então é isso. Esse era o conceito
de segurança nula. E dessa forma, esse foi o tópico final do curso
sombrio como suor. Se eu sentir como se eu tiver que
adicionar alguma coisa no futuro, definitivamente
vou adicioná-lo. Mas agora estamos prontos para ir diretamente para
o curso de flutter. Obrigado.