2
respostas

[Bug] Resposta incorreta?

No curso "Dart: sintaxe, coleções e dinamismo", na Atividade: "Para saber mais: lidando com Iterables", existe o seguinte exemplo:

List<int> numeros = [1,2,3,3,2,1];
  var subLista = numeros.getRange(1,4);
  print(subLista); // (2,3,3)

O retorno correto da função print, não seria (2,3,3,2), já que o range vai de 1 à 4?

2 respostas

Olá Emerson,

Obrigado por compartilhar sua dúvida conosco!

Na verdade, o retorno da função print está correto. O método getRange(inicio, fim) retorna uma sublista que começa no índice "inicio" e vai até o índice "fim - 1". No exemplo que você citou, a sublista começa no índice 1 e vai até o índice 4-1=3, ou seja, a sublista contém os elementos [2, 3, 3]. O elemento 2 não é incluído na sublista porque ele está no índice 1, que não faz parte da sublista.

Espero ter ajudado e bons estudos!

Olá Matheus.

Primeiramente, obrigado por responder.

Você tem razão, consultei a documentação e está correto mesmo.

"The returned iterable iterates over the elements of this list with positions greater than or equal to start and less than end."

Fonte: https://api.flutter.dev/flutter/dart-core/List/getRange.html