Dart 有提供 reversed
將 List 翻轉,但與 ECMAScript 的 reverse()
行為不太一樣。
Dart
void main() {
var list1 = [1, 2, 3];
print(list1.reversed); // [3, 2, 1]
print(list1); // [1, 2, 3]
}
reversed
: 以 property 形式存在,而非 methodreversed
只會回傳翻轉後的結果,並不會影響原本 List 內容toList()
:reversed 後必須再使用toList()
之後才會是 List
ECMAScript
let arr = [1, 2, 3]
console.log(arr.reverse()) // [3, 2, 1]
console.log(arr) // [3, 2, 1]
reverse()
:以 method 形式存在,而非 propertyreverse()
除了回傳翻轉後的結果外,也為影響原本 List 內容
Conclusion
- Dart 與 ECMAScript 都有提供翻轉 List / Array 的方法,Dart 為
reverse
property,而 ECMAScript 為reverse()
method - Dart 的
reverse
只會回傳翻轉後的結果,並不會改變原本 List,為 immutable - ECMAScript 的
reverse()
除了回傳翻轉後的結果外,還會改變原本 Array,為 mutable