Наприклад, у C # масиви мають властивість Length. Але інші типи колекцій, такі як списки тощо, мають властивість Count. Чи є причина, чому ці дві різні? Якщо так, я хотів би знати.
Наприклад, у C # масиви мають властивість Length. Але інші типи колекцій, такі як списки тощо, мають властивість Count. Чи є причина, чому ці дві різні? Якщо так, я хотів би знати.
Відповіді:
Їх називають по-різному, оскільки семантично вони зовсім інші:
Кількість колекції - це кількість предметів, які зараз зберігаються в ній і можуть з часом змінюватися.
Довжина масиву - це максимальна кількість елементів, які він може вмістити (він матиме довжину 10, навіть якщо ви не зберегли в ньому стільки елементів) і є незмінним.
Приклад:
Якщо у мене є відро, яке може вмістити максимум 100 кульок, воно має довжину 100. Якщо я вкладу в нього 50 кульок, то воно має кількість 50.
Якщо я додаю ще 10 куль, то граф стає 60, але довжина все ще 100. Для зміни довжини мені потрібно отримати відро.
Масив, ймовірно, використовує слово "Довжина", оскільки під капотом він виділяє суміжний блок (довжину) пам'яті на основі ємності, помноженої на розмір елемента. Хоча той факт, що клас List використовує "Ємність" для аналогічної (хоча й мінливої) концепції, говорить про масив, може використовувати слово "Довжина" з історичних причин.
T[]
з довжиною N завжди зберігає точно N значень типу T
. Семантично не всі ці значення можуть бути змістовними (вони можуть бути, null
наприклад), але вони існують. Це відрізняється від звичайного значення ємності (як використовується, List<T>
наприклад). Ти маєш рацію, що Count
може змінюватися, а Length
не можеш. Потім знову нічого мандату, що Count
насправді зміниться. Він також використовується для незмінних колекцій.
count
-property.