Стоимость определения структур golang при вызове функции

Нет. Оболочка типа Bourne всегда выполняет globbing , когда это необходимо, перед выполнением команды. Пользователь должен указывать или избегать аргументов, чтобы предотвратить глобус, например foo \*; фактическая выполняемая программа не может указывать предпочтения.

0
задан levelont 17 January 2019 в 13:48
поделиться

1 ответ

Типы являются концепцией времени компиляции, и их область действия (в общем случае) не влияет на скорость выполнения, поскольку код, сгенерированный компилятором в этих случаях, не обращает внимания на исходный тип (подробнее см. Стирание и повторная реализация типа). ), с отражением, являющимся выбросом, но у вас здесь нет отражения.


Тем не менее, я нахожу этот код немного подозрительным:

request := initializeRequest()

Где определен initializeRequest? Он должен знать о типе request, поэтому я предполагаю, что он также является внутренним для функции? В противном случае код не скомпилируется. Эти соображения ограничивают полезность функционально-локальных структур во многих случаях, но если у вас все есть локально, я думаю, что это хорошая практика - максимально скрывать типы.

В более масштабных программах вопрос тестирования также вступит в игру. Как вы тестируете типы и функции, работающие с ними, если они скрыты в области видимости?

0
ответ дан Eli Bendersky 17 January 2019 в 13:48
поделиться
Другие вопросы по тегам:

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