Что такое идиома проверки дротиков на нуль или лучшая практика?

Количество используемых ковшей начинается примерно так же, как количество клавиш; выделенные ведра, как правило, являются наименьшей мощностью 2> количества ключей. 5 клавиш вернут 5/8. Большее количество уникальных ключей растет медленнее, так что хеш% h, который является только списком (1..128), с 64 парами ключ / значение, каким-то образом получает скалярное значение 50/128.

Однако, как только хэш выделил свои ведра, они останутся выделенными, даже если вы уменьшите хэш. Я просто сделал хэш% h с 9 парами, таким образом 9/16 скаляр; тогда, когда я переназначил% h, чтобы иметь только одну пару, его скалярное значение было 1/16.

Это на самом деле имеет смысл в том смысле, что позволяет проверить размер хэша, как скаляр простого массива.

42
задан Darshan Rivka Whittle 9 June 2013 в 12:19
поделиться

1 ответ

Существуют теперь 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,
];
2
ответ дан orangesherbert 23 September 2019 в 11:34
поделиться
  • 1
    That' s не причина (хотя можно быть правы относительно этого являющийся сбивающим с толку). Например, если я объявляю поле и don' t дают ему какие-либо модификаторы доступа, действительно ли это является общедоступным, частным, статичным, внутренним, что? Значение по умолчанию является частным, но Вы don' t должны объявить это явно. Статичная причина и константа can' t использоваться вместе то, потому что они подразумевают различные механизмы хранения и являются поэтому взаимоисключающими. – Tim Long 9 May 2009 в 04:51
Другие вопросы по тегам:

Похожие вопросы: