поэтому и возвращает nothing чтобы типы сходились. Предположу еще что break реализован похожим на scala и некоторые другие языки образом, являясь по сути исключением.
я просто задумался можно ли было значением цикла сделать что‑то более полезное...
Скорее всего это задел дляyield, тогда возвращаемый тип будет другим
Результатом оператора for является значение типа Unit. Почему не Nothing? В общем тут глубоко полезной логики пока не видно.
Потому что нельзя создать инстанс Nothing, а вернуть какое то значение нужно. Nothing обычно в языках ещё и является подтипом всех типов, поэтому continue/break/throw имея такой тип могут быть согласованы с любым другим возвращаемым из функции типом.
GCC первоначально выдавал предупреждение об отключении pragma once, если компилируемый код использовал её. Тем не менее, в релизе 3.4 GCC код обработки команды pragma once был исправлен для корректной работы с символьными и жёсткими ссылками. Данная возможность была сочтена полезной и предупреждение было убрано
https://ru.wikipedia.org/wiki/Pragma_once
Код в GameMaker — это обработчики тех или иных событий объектов (создание, пересечение, отрисовка и т.д.) на JavaScript.
В Game maker не JavaScript, а свой язык Game Maker Language ru.wikipedia.org/wiki/Game_Maker_Language
поэтому и возвращает nothing чтобы типы сходились. Предположу еще что break реализован похожим на scala и некоторые другие языки образом, являясь по сути исключением.
Скорее всего это задел для
yield, тогда возвращаемый тип будет другимПотому что нельзя создать инстанс Nothing, а вернуть какое то значение нужно. Nothing обычно в языках ещё и является подтипом всех типов, поэтому continue/break/throw имея такой тип могут быть согласованы с любым другим возвращаемым из функции типом.
https://github.com/arainko/ducktape
https://github.com/softwaremill/tapir
https://ru.wikipedia.org/wiki/Pragma_once
ru.wikipedia.org/wiki/Основы_религиозных_культур_и_светской_этики
В Game maker не JavaScript, а свой язык Game Maker Language
ru.wikipedia.org/wiki/Game_Maker_Language