Учитывая этот код: function main () println ("hello") end if abspath (PROGRAM_FILE) == @__FILE__ main () end Что делает последняя часть и как она работает? Где эти переменные ...

3
DVNold 14 Янв 2021 в 17:38

1 ответ

Лучший ответ

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

@__FILE__ - это макрос, расширяющийся до имени файла, в котором он раскрывается.

Показанная комбинация является вариантом Julia для Python if __name__ == '__main__': когда файл запускается как скрипт, PROGRAM_FILE будет содержать имя скрипта, равное текущему файлу, и будет вызываться main . Когда файл включается или импортируется откуда-то еще, PROGRAM_FILE будет содержать имя любого сценария, использовавшего текущий файл, и отличаться от имени текущего файла.

3
phipsgabler 14 Янв 2021 в 16:48