No artigo Tipos de construtores em Dart: guia prático para iniciantes: https://www.alura.com.br/artigos/construtores-dart-tipos-como-usa-los#construtor-nomeado notei um pequeno no tópico "Construtor de fábrica" temos como exemplo a classe: // Classe mãe
class Funcionario {
String nome;
int idade;
String hobby;
Funcionario(this.nome, this.idade, this.hobby);
// Construtor de fábrica
factory Funcionario.criar(String nome, int idade, String hobby,
** {String funcao = ""}) {**
switch (funcao) {
case "Gerente":
return Gerente(nome, idade, hobby);
case "Vendedor(a)":
return Vendedor(nome, idade, hobby);
default:
return Funcionario(nome, idade, hobby);
}
}
}
e depois esse trecho: "No código acima, temos um parâmetro opcional nomeado chamado cargo que recebemos a fim de usar uma estrutura de seleção condicional (switch case), na qual analisamos esse parâmetro e, para cada caso, retornamos algo diferente:"
No seu código, a pessoa definiu {String funcao = ""}. No texto, porém chamou de cargo, pelo o que eu entendi a pessoa se confundiu certo?