1
The example below is a summary of the original (Bringing it all Together) found on the official Flutter page.
On the first call, the class Cart is initialized by the constructor and in the second Cart2, nay.
As you notice the result is exactly the same, so I was in doubt, it is just a 'gurmetization' of the code or has some advantage/recommendation to initialize a property in the class constructor?
class Produto {
const Produto({this.nome});
final String nome;
}
void main() {
Cart(produto: Produto(nome: 'Hd 1TB'), disponivel: true);
Cart2(produto: Produto(nome : 'Hd 2TB'), disponivel: false);
}
class Cart {
final Produto produto;
final bool disponivel;
Cart({Produto produto, this.disponivel}) : produto = produto
{
print('Produto: ' + produto.nome);
print('Disponível: ' + disponivel.toString());
}
}
/*
Resultado:
Produto: Hd 1TB
Disponível: true
Produto: Hd 2TB
Disponivel: false
*/
class Cart2 {
final Produto produto;
final bool disponivel;
Cart2({this.produto, this.disponivel})
{
print('Produto: ' + produto.nome);
print('Disponivel: ' + disponivel.toString());
}
}
Wonder what term to use, I saw here (https://dart.dev/guides/language/language-tour) the following:
Dart supports top-level variables, as well as variables tied to a class or object (static and instance variables). Instance variables are sometimes known as fields or properties.
– rubStackOverflow
"This syntax putting this..."is referring to
named arguments
?– rubStackOverflow
no, I’m talking about the parameters, in the case of builders.
– Maniero