Замечания и предложения

Можете прямо здесь создать опрос(или вынести в отдельный топик) и сразу узнаете мнение. На GitHub и так Issue переполнены, разработчики просили быть аккуратнее…

Вас понял.

Пожалуй, немного поздно, но вот почитайте.

А где можно прочитать, насколько часто это использовалось на практике?

В PascalABC.NET надо, извините, неоднократно раком стать, чтобы последовательность ту же суметь передать по значению. Как вообще передать по значению то, что не хранится?

1 лайк

А кто просил Вас передавать по значению то, что не хранится?

Ну Вы же хотите out для последовательностей? Или нет?

Хочу, но:

Ключевое out инициирует передачу аргументов по ссылке. Оно схоже с ключевым словом ref за исключением того, что при использовании ref перед передачей переменную необходимо инициализировать.

Я же вижу, что по ссылке (выше ее тоже оставлял) никто не тыкал.

Приплыли… Отдельное ключевое слово для работы с редким типом.

Спасибо, я это давно знаю)))) Я пытаюсь все же понять, зачем это надо.

Я уже ответил Вам, что в Паскале переменные автоинициализируются, а передача nil через Var не запрещена.

1 лайк

Если Вы знаете, то тогда это зачем:

?

Я Вам страшную пионерскую тайну открою: ссылку необязательно тыкать. Есть такая штука ,называется меню правой кнопки мыши. И оттуда можно делать переход в новое окно без кликов))

2 лайка

А, действительно страшная тайна. Тогда приношу свои извинения.

@RAlex, таки сделали опрос.

Что мешает сделать ключевое слово, которое заставляет назначить значение переменной, переданной по ссылке, внутри подпрограммы? Просто заставляет, больше ничего. Человек есть человек, он может что-то забыть. А если ему напомнит что-то присвоить переменной компилятор - это же хорошо.

Повторяю третий(!) раз: в Паскале автоинициализируются простые типы(Int32, Byte и подобные). Им по умолчанию присвоен 0. Если Вам так хочется, можете сделать проверку параметра на nil и выдавать исключение. А вообще,

Дело было вечером - делать было нечего.

Повторюсь, что можно сделать ключевое слово, которое заставляет передавать переменную по ссылке (как var), а также заставляет переприсвоить ей какое-то значение до выхода из тела подпрограммы.

Это и есть var.

Нет. Только на половину. var не:

заставляет переприсвоить ей какое-то значение до выхода из тела подпрограммы