我正在檢查Map. (map.dart in dart:collection)
我void clear();在abstract class Map<K, V>. clear()沒有任何實作,class Map也沒有擴展/實作任何其他類。但我仍然可以打電話clear()。
例子
Map<int, int> m = <int, int>{1: 1, 2: 2};
m.clear();
我在哪里可以找到 的實施clear()?
uj5u.com熱心網友回復:
我的回答是基于您希望在 Dart 本地運行而不是在 Web 上運行時使用的實作的假設。
MapDart 中的默認值是LinkedHashMap. 在實作之前有幾個層,clear()但我希望這是您正在尋找的層:
void clear() {
if (!isEmpty) {
_index = _uninitializedIndex;
_hashMask = _HashBase._UNINITIALIZED_HASH_MASK;
_data = _uninitializedData;
_usedData = 0;
_deletedKeys = 0;
}
}
https://github.com/dart-lang/sdk/blob/2.15.1/sdk/lib/_internal/vm/lib/compact_hash.dart#L333-L341
uj5u.com熱心網友回復:
{}符號創建 a LinkedHashMap,您可以在其中找到實作。看:
import 'dart:collection';
void main () {
Map<int, int> m = <int, int>{1: 1, 2: 2};
if(m is LinkedHashMap) {
print("It's a LinkedHashMap!");
}
}
輸出:
It's a LinkedHashMap!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/410663.html
標籤:
上一篇:自動切換文本欄位
