Нет. Оболочка типа Bourne всегда выполняет globbing , когда это необходимо, перед выполнением команды. Пользователь должен указывать или избегать аргументов, чтобы предотвратить глобус, например foo \*
; фактическая выполняемая программа не может указывать предпочтения.
Типы являются концепцией времени компиляции, и их область действия (в общем случае) не влияет на скорость выполнения, поскольку код, сгенерированный компилятором в этих случаях, не обращает внимания на исходный тип (подробнее см. Стирание и повторная реализация типа). ), с отражением, являющимся выбросом, но у вас здесь нет отражения.
Тем не менее, я нахожу этот код немного подозрительным:
request := initializeRequest()
Где определен initializeRequest
? Он должен знать о типе request
, поэтому я предполагаю, что он также является внутренним для функции? В противном случае код не скомпилируется. Эти соображения ограничивают полезность функционально-локальных структур во многих случаях, но если у вас все есть локально, я думаю, что это хорошая практика - максимально скрывать типы.
В более масштабных программах вопрос тестирования также вступит в игру. Как вы тестируете типы и функции, работающие с ними, если они скрыты в области видимости?