Можно ли сделать массивы константными
От: FDSC Россия consp11.github.io блог
Дата: 28.05.07 15:46
Оценка:
Можно ли сделать массивы константными?

Проще говоря, что бы элементы один раз инициализированного массива дальше не изменялись. Или это можно сделать только с помощью списков?
Re: Можно ли сделать массивы константными
От: Kisloid Мухосранск  
Дата: 28.05.07 16:03
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Можно ли сделать массивы константными?


FDS>Проще говоря, что бы элементы один раз инициализированного массива дальше не изменялись. Или это можно сделать только с помощью списков?


Если мне не изменяет склероз, то кажется нельзя, причем это особенность самого .net'а.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re: Можно ли сделать массивы константными
От: Иванков Дмитрий Россия  
Дата: 28.05.07 16:28
Оценка: +1
Здравствуйте, FDSC, Вы писали:

FDS>Можно ли сделать массивы константными?


FDS>Проще говоря, что бы элементы один раз инициализированного массива дальше не изменялись. Или это можно сделать только с помощью списков?


В первом приближении можно сэмулировать своим классом с Indexer-ом (private set, public get, ctor initialization).

Однако константный массив — довольно слабая структура данных, т.е. не имеет никаких полезных и одновременно быстрых операций за исключением чтения элемента по его индексу.
Если нужны другие действия, то стоит попробовать более сложные неизменяемые структуры данных (например сбалансированные деревья).
Re: Можно ли сделать массивы константными
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.05.07 01:38
Оценка: 4 (1)
Здравствуйте, FDSC, Вы писали:

FDS>Можно ли сделать массивы константными?

FDS>Проще говоря, что бы элементы один раз инициализированного массива дальше не изменялись. Или это можно сделать только с помощью списков?

def ar = Array.AsReadOnly(array[1,2,3]);
WriteLine($"..$ar");
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.