что в описании функций часто используют прямое указание на отсутствие возвращаемого значения (а точнее на возврат функцией Null) через конструкцию -> void:
func foo() -> void:
pass
Зачем нужно такое явное указание, если по умолчанию все-равно результат будет Null? Это ускоряет выполнение или парсинг кода движком? Или это нужно только для единства стилистики кода, визуальной однозначности возвращаемого значения при чтении кода программистом? Понятно, что если есть ключевое слово return, которое выдает на выходе какое-нибудь значение, например int, то лучше задать тип выходного значения,
func bar(n) -> int:
return 2 * n
чтобы движок не тратил время на выяснение этого типа, да и при чтении кода будет более однозначно поведение функции. Но зачем засорять код лишними символами и конструкциями, если на выходе по умолчанию Null и визуально можно всегда трактовать значение как Null, если оно явно не задано?
pass это заглушка аля todo. Ну лично для меня
К pass у меня вопросов нет и его значение и функции в языке полностью понятны by design. Вопрос у меня именно к уместности -> void: , т.к. лично для меня эта конструкция засоряет восприятие кода.
На гитхабе если код читаешь, что явное указание типа сильно повышает читаемость. Но я лично не юзаю
Почти все ответы на вопросы есть вот здесь: https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/static_typing.html Явное указание, как и статическая типизация - это защита от передачи "не того" в "не туда". Конкретно про -> void: - это стилистика, написано всё по ссылке выше. Если есть что возвращать - некое значение будет возвращено, да, тут все капитаны согласятся 😁 Если конструкция лично кому-то засоряет восприятие кода - don't use it 🤷♂️ А про преимущества динамической типизации перед статической в целом - в другом чате, пожалуйста. Конкретно про GDScript: есть пути увеличить скорость выполнения скриптов, в доке выше есть упоминание некоего JIT compilation 😉 Это в дополнение к слою валидации, который данный инструмент (static typing) предоставляет. Если есть интерес про грядущее/нестабильное, то можно ознакомиться вот с этими постами, там также есть про статическую типизацию: https://godotengine.org/article/gdscript-progress-report-typed-instructions https://godotengine.org/article/gdscript-progress-report-feature-complete-40 "Note that some optimized instructions are applied with type inference but to enjoy the most benefit you have to use static typing for everything (you also get safer code, so it's a plus)."
+ за исчерпывающий ответ
Тебе с такой маленькой кармой (-1) нельзя менять её другим
Обсуждают сегодня