Na maioria das linguagens, estamos lidando com valores finais e constantes, como os próprios nomes já sugerem.
Agora, tanto final quanto const parecem que estamos criando valores que não podem mudar, certo?
Um valor constante é provavelmente o oposto de uma variável, é uma variável que não muda, portanto, é bastante constante no valor que está armazenado nele!
Mas um valor final também é um valor que não muda.
Então, bora verificar a diferença?
var user = [
{'name ': 'Henrique', 'age': 20},
{'name ': 'José', 'age': 22},
{'name ': 'Vargas', 'age': 27},
];
Podemos usar final em vez de var aqui e, na verdade, seria melhor do que usar var porque agora estamos muito cientes sobre o fato de que nunca pretendemos alterar esses valores uma vez que nosso programa seja executado!
E aqui está a grande jogada!!!
Use final se um valor não mudar desde o momento em que seu programa é executado. Ele pode ser inicializado com um valor, embora, por exemplo, em nossos códigos Dart, as propriedades aqui são finais porque elas são alteradas inicialmente quando atribuímos um valor aqui quando ele é criado, mas não mudam depois disso. exatamente o que final significa!
class User {
final String userName;
final int16 age;
User(this.age, this.userName);
}
É um valor constante de tempo de execução. No momento em que este código é executado, nós registramos os valores finais, mas no momento em que estamos escrevendo este código, não sabemos qual será o valor final.
Então const para quê?
const user = [
{'name ': 'Henrique', 'age': 20},
{'name ': 'José', 'age': 22},
{'name ': 'Vargas', 'age': 27},
];
Deveríamos usar const para deixar bem claro que esta é uma constante de tempo de compilação, não uma constante de tempo de execução como final é, mas uma constante de tempo de compilação.
Agora, constante de tempo de compilação também significa implicitamente constante de tempo de execução.
Se você souber no momento em que está escrevendo o código qual será o valor final e que esse valor nunca mudará, então, é claro, ele também nunca mudará durante o tempo de execução.
Mas o valor, o valor final, não é registrado quando o código é executado, mas já depois que você escreveu o código, porque o valor nunca será alterado.
E esse é um conceito importante e, esperançosamente, deixa claro por que você veja o final e o const e como eles diferem.
Top comments (0)