Количество используемых ковшей начинается примерно так же, как количество клавиш; выделенные ведра, как правило, являются наименьшей мощностью 2> количества ключей. 5 клавиш вернут 5/8. Большее количество уникальных ключей растет медленнее, так что хеш% h, который является только списком (1..128), с 64 парами ключ / значение, каким-то образом получает скалярное значение 50/128.
Однако, как только хэш выделил свои ведра, они останутся выделенными, даже если вы уменьшите хэш. Я просто сделал хэш% h с 9 парами, таким образом 9/16 скаляр; тогда, когда я переназначил% h, чтобы иметь только одну пару, его скалярное значение было 1/16.
Это на самом деле имеет смысл в том смысле, что позволяет проверить размер хэша, как скаляр простого массива.
Существуют теперь 4 пустые осведомленные операторы
String subject = null; //"Something"
var r = subject == null ? "defaultIfNull" : subject;
print(r); //"defaultIfNull" or "Something"
использование ярлыка??
subject ?? "defaultIfNull";
String subject = null; //"Something"
if (subject == null) subject = "defaultIfNull";
print(subject); //"defaultIfNull" or "Something"
использование ярлыка?? =
subject ??= "defaultIfNull";
Point object = null; //or Point(1,2);
var r = object == null ? null : object.x;
print(r); //null or 1
предмета?.
object?.x;
, результат следующего
[
...[1, 2],
null,
]
[1, 2, null]
для предотвращения использования нулевого значения...?
var resultingList = [
...[1, 2],
...?subjectList,
];