どうも、ちょげ(@chogetarou)です。
Dartで配列であるリストのshuffleメソッドは、元の配列に影響を与えるようになっています。
shuffleメソッドで、元の配列に影響を与えず、結果だけを取得する方法を紹介します。
方法

リストのshuffleメソッドを元の配列に影響を与えないようにするには、toListメソッドとカスケード記法を使います。
まず、toListメソッドを呼び出します。
そして、カスケード記法で、shuffleメソッドを呼び出します。
var shuffled = numbers.toList()..shuffle();
toListメソッドとカスケード記法で、配列をシャッフルした結果だけを取得することが出来ます。
使用例
void main() {
var numbers = [1 , 2, 3, 4, 5];
var shuffled = numbers.toList()..shuffle();
print(numbers);//[1, 2, 3, 4, 5]
print(shuffled); //[5, 2, 4, 3, 1]
}
コメント