Olá estou fazendo o terceiro curso de flutter que começa a falar de banco de dados com Sqlite e pra isso usando sqflite. Tem um método save que não entendi o retorno:
class TaskDao {
static const String CreateTableSql = """
CREATE TABLE $_tablename(
$_name TEXT,
$_difficulty INTEGER,
$_image TEXT)
""";
static const String _tablename = 'taskTable';
static const String _name = 'name';
static const String _difficulty = 'difficulty';
static const String _image = 'image';
save(Task task) async {
print('Iniciando o save');
final Database db = await getDatabase();
var itemExists = await find(task.nome);
Map<String, dynamic> taskMap = toMap(task);
if (itemExists.isEmpty) {
print('A tarefa não existia');
return await db.insert(_tablename, taskMap);
} else {
print("A tarefa já existia");
return await db.update(_tablename, taskMap,
where: '$_name = ?', whereArgs: [task.nome]);
}
}
(...)
}
}
Se o método save é um metodo que não retorna nada porque ele termina com return await db.insert(tablename, taskMap); ou return await db.update(tablename, taskMap, where: '$_name = ?', whereArgs: [task.nome]);
db.insert e db.update é do tipo Future-int então os return vão retornar inteiros. Por que o método save não é do tipo int save ou do tipo Future-int save , já que é uma função assincrona que tem que esperar dados do banco de dados e vai retornar inteiros