Всем привет! Такой вопрос. Читая чужие исходники на GDScipt, заметил,

что в описании функций часто используют прямое указание на отсутствие возвращаемого значения (а точнее на возврат функцией Null) через конструкцию -> void:
func foo() -> void:
pass
Зачем нужно такое явное указание, если по умолчанию все-равно результат будет Null? Это ускоряет выполнение или парсинг кода движком? Или это нужно только для единства стилистики кода, визуальной однозначности возвращаемого значения при чтении кода программистом? Понятно, что если есть ключевое слово return, которое выдает на выходе какое-нибудь значение, например int, то лучше задать тип выходного значения,
func bar(n) -> int:
return 2 * n
чтобы движок не тратил время на выяснение этого типа, да и при чтении кода будет более однозначно поведение функции. Но зачем засорять код лишними символами и конструкциями, если на выходе по умолчанию Null и визуально можно всегда трактовать значение как Null, если оно явно не задано?

6 ответов

10 просмотров

pass это заглушка аля todo. Ну лично для меня

Argent-Argent Автор вопроса
drxwat @frontend_pashtet
pass это заглушка аля todo. Ну лично для меня

К pass у меня вопросов нет и его значение и функции в языке полностью понятны by design. Вопрос у меня именно к уместности -> void: , т.к. лично для меня эта конструкция засоряет восприятие кода.

Argent Argent
К pass у меня вопросов нет и его значение и функци...

На гитхабе если код читаешь, что явное указание типа сильно повышает читаемость. Но я лично не юзаю

Почти все ответы на вопросы есть вот здесь: 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)."

Argent-Argent Автор вопроса
Argent Argent
+ за исчерпывающий ответ

Тебе с такой маленькой кармой (-1) нельзя менять её другим

Похожие вопросы

Обсуждают сегодня

Всем привет. Подскажите, почему не меняется значение поля при переключении сайта?
Alexander Peterikov
11
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Приветствую друзья, подскажите сколько в среднем стоит на данный момент создать тг бота который будет как магазин? Показывать ассортименты доставлять заказы и тд? Все по станд...
Eugene
3
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Цвет аватарки с буквой же зависит от айди? Как может быть такое, что этот цвет поменялся?
Lencore
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
привет, а расскажите как бэкапите свой vault raft cluster CE? я немного почитал и понял, что нужно как-то выполнять vault operator raft snapshot save backup.snapshot подсовыва...
[DBST] Dmitry Knyazev
5
Карта сайта