Интерактивные утилиты
Base.Docs.aproposФункция
apropos([io::IO=stdout], pattern::Union{AbstractString,Regex})
Поиск доступных строковых описаний для записей, содержащих pattern.
Если pattern является строкой, регистр игнорируется. Результаты выводятся в io.
InteractiveUtils.varinfoФункция
varinfo(m::Module=Main, pattern::Regex=r""; all::Bool = false, imported::Bool = false, sortby::Symbol = :name)
Возвращает таблицу Markdown, содержащую информацию об экспортированных глобальных переменных в модуле, необязательно ограниченную теми, которые соответствуют pattern.
Оценочное значение потребления памяти — это приблизительная нижняя граница размера внутренней структуры объекта.
-
all: также отображаются неэкспортированные объекты, определённые в модуле, устаревшие объекты и объекты, сгенерированные компилятором. -
imported: также отображаются объекты, явно импортированные из других модулей. -
recursive: рекурсивно включаются объекты в подмодулях, наблюдая за теми же настройками в каждом. -
sortby: столбец для сортировки результатов. Доступные варианты —:name(по умолчанию),:size, и:summary.
InteractiveUtils.versioninfoФункция
versioninfo(io::IO=stdout; verbose::Bool=false)
Вывод информации о версии используемого Julia. Вывод контролируется булевыми ключевыми аргументами:
-
verbose: вывести всю дополнительную информацию
InteractiveUtils.methodswithФункция
methodswith(typ[, module or function]; supertypes::Bool=false])
Возвращает массив методов с аргументом типа typ.
Необязательный второй аргумент сужает поиск до определённого модуля или функции (по умолчанию — все модули верхнего уровня).
Если ключевой аргумент supertypes равен true, также возвращает аргументы с родительским типом typ, исключая тип Any.
InteractiveUtils.subtypesФункция
subtypes(T::DataType)
Возвращает список непосредственных подтипов типа данных T. Обратите внимание, что включаются все загруженные в данный момент подтипы, включая те, которые не видны в текущем модуле.
Примеры
julia> subtypes(Integer)
3-element Vector{Any}:
Bool
Signed
Unsigned
исходный код
InteractiveUtils.supertypesФункция
supertypes(T::Type)
Возвращает кортеж (T, ..., Any) типа T и всех его надтипов, как определено последовательными вызовами функции supertype, упорядоченных по <: и завершённых Any.
Примеры
julia> supertypes(Int) (Int64, Signed, Integer, Real, Number, Any)исходный код
InteractiveUtils.editМетод
edit(path::AbstractString, line::Integer=0)
Редактирование файла или каталога, необязательно с указанием номера строки для редактирования файла. Возвращение к приглашению julia при выходе из редактора. Редактор можно изменить, установив JULIA_EDITOR, VISUAL или EDITOR как переменную среды.
См. также: define_editor
InteractiveUtils.editМетод
edit(function, [types]) edit(module)
Редактирование определения функции, необязательно указав кортеж типов, чтобы указать, какой метод редактировать. Для модулей открывается основной файл исходного кода. Модуль необходимо предварительно загрузить с помощью using или import.
edit для модулей требует как минимум Julia 1.1.
Для того, чтобы файл мог быть открыт на указанной строке, может потребоваться предварительный вызов define_editor.
InteractiveUtils.@editМакрос
@edit
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает функцию edit над полученным выражением.
InteractiveUtils.define_editorФункция
define_editor(fn, pattern; wait=false)
Определяет новый редактор, соответствующий pattern для открытия файла (возможно, на заданном номере строки) с помощью fn.
Аргумент fn — функция, которая определяет, как открыть файл с помощью заданного редактора. Она должна принимать три аргумента:
-
cmd- базовый объект команды редактора -
path- путь к файлу исходного кода для открытия -
line- номер строки для открытия редактора
Редакторы, которые не могут открыть файл на конкретной строке с помощью команды, могут проигнорировать аргумент line.
Обратный вызов fn должен вернуть либо соответствующий объект Cmd для открытия файла, либо nothing для указания невозможности редактирования файла. Используйте nothing для обозначения того, что данный редактор не подходит для текущей среды, и следует попробовать другой. Можно добавить более общие плагины редактирования, которые не требуют запуска внешних команд, добавив обратный вызов непосредственно в вектор EDITOR_CALLBACKS.
Аргумент pattern - строка, регулярное выражение или массив строк и регулярных выражений. Для вызова fn одно из шаблонов должно соответствовать значению EDITOR, VISUAL или JULIA_EDITOR.
Для строк строка должна совпадать с basename первого слова команды редактора, без расширения (если есть). Например, «vi» не соответствует «vim -g», но соответствует «/usr/bin/vi -m»; также соответствует vi.exe.
Если pattern — регулярное выражение, оно сопоставляется со всей командой редактора как экранированная строка оболочки. Массив шаблонов соответствует, если соответствует любой из его элементов.
Если совпадает несколько редакторов, используется тот, который был добавлен последним.
По умолчанию Julia не ожидает закрытия редактора, запуская его в фоновом режиме. Однако, если редактор основан на терминале, вы, вероятно, захотите установить wait=true, и Julia будет ждать закрытия редактора перед возобновлением работы.
Если одна из переменных среды редактора установлена, но ни один из записей редактора ей не соответствует, вызывается запись по умолчанию:
(cmd, path, line) -> `$cmd $path`
Обратите внимание, что многие редакторы уже определены. Все следующие команды должны уже работать:
- emacs
- emacsclient
- vim
- nvim
- nano
- textmate
- mate
- kate
- subl
- atom
- notepad++
- Visual Studio Code
- open
- pycharm
- bbedit
Пример:
Следующее определяет использование терминального emacs:
define_editor(
r"\bemacs\b.*\s(-nw|--no-window-system)\b", wait=true) do cmd, path, line
`$cmd +$line $path`
end
define_editor был введён в Julia 1.4.
InteractiveUtils.lessМетод
less(file::AbstractString, [line::Integer])
Отображение файла с помощью стандартного просмотрщика, необязательно с указанием начальной строки. Возвращение к приглашению julia при выходе из просмотрщика.
InteractiveUtils.lessМетод
less(function, [types])
Отображение определения функции с помощью стандартного просмотрщика, необязательно указав кортеж типов, чтобы указать, какой метод отобразить.
исходный код
InteractiveUtils.@lessМакрос
@less
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает функцию less над полученным выражением.
InteractiveUtils.@whichМакрос
@which
Применяется к вызову функции или макроса, вычисляет аргументы указанного вызова и возвращает объект Method для метода, который был бы вызван для этих аргументов. Применяется к переменной, возвращает модуль, в котором была связана переменная. Вызывает функцию which.
InteractiveUtils.@functionlocМакрос
@functionloc
Применяется к вызову функции или макроса, вычисляет аргументы указанного вызова и возвращает кортеж (filename,line) с местоположением метода, который был бы вызван для этих аргументов. Вызывает функцию functionloc.
InteractiveUtils.@code_loweredМакрос
@code_lowered
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает code_lowered для полученного выражения.
InteractiveUtils.@code_typedМакрос
@code_typed
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает code_typed для полученного выражения. Используйте необязательный аргумент optimize с
@code_typed optimize=true foo(x)
чтобы управлять применением дополнительных оптимизаций, таких как встраивание.
исходный код
InteractiveUtils.code_warntypeФункция
code_warntype([io::IO], f, types; debuginfo=:default)
Выводит пониженные и типизированные AST для методов, соответствующих заданной родовой функции и типу подписи в io, по умолчанию stdout. AST аннотированы таким образом, что «нелистовые» типы выделяются (если доступен цвет, отображаются красным). Это служит предупреждением о потенциальной нестабильности типов. Не все нелистовые типы представляют особую проблему для производительности, поэтому результаты следует использовать осмотрительно. В частности, объединения, содержащие либо missing, либо nothing, отображаются жёлтым цветом, поскольку они часто являются преднамеренными.
Необязательный ключевой аргумент debuginfo может быть одним из :source или :none (по умолчанию), чтобы указать уровень подробности комментариев к коду.
См. @code_warntype для получения дополнительной информации.
InteractiveUtils.@code_warntypeМакрос
@code_warntype
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает code_warntype для полученного выражения.
InteractiveUtils.code_llvmФункция
code_llvm([io=stdout,], f, types; raw=false, dump_module=false, optimize=true, debuginfo=:default)
Выводит LLVM-биткоды, сгенерированные для выполнения метода, соответствующего заданной родовой функции и типу подписи, в io.
Если ключевой аргумент optimize не задан, код будет показан до оптимизаций LLVM. Все метаданные и вызовы dbg.* удаляются из выводимого биткода. Для полного IR установите ключевой аргумент raw в значение true. Чтобы вывести весь модуль, содержащий функцию (с объявлениями), установите ключевой аргумент dump_module в значение true. Ключевой аргумент debuginfo может быть source (по умолчанию) или none, чтобы указать уровень подробности комментариев к коду.
InteractiveUtils.@code_llvmМакрос
@code_llvm
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает code_llvm для полученного выражения. Установите необязательные ключевые аргументы raw, dump_module, debuginfo, optimize перед вызовом функции, например так:
@code_llvm raw=true dump_module=true debuginfo=:default f(x) @code_llvm optimize=false f(x)
optimize управляет применением дополнительных оптимизаций, таких как встраивание. raw делает все метаданные и вызовы dbg.* видимыми. debuginfo может быть одним из :source (по умолчанию) или :none, чтобы указать уровень подробности комментариев к коду. dump_module выводит весь модуль, содержащий функцию.
InteractiveUtils.code_nativeФункция
code_native([io=stdout,], f, types; syntax=:att, debuginfo=:default)
Выводит инструкции машинного кода, сгенерированные для выполнения метода, соответствующего заданной родовой функции и типу подписи, в io.
Переключить синтаксис ассемблера с помощью символа syntax в :att для синтаксиса AT&T или :intel для синтаксиса Intel.
Ключевой аргумент debuginfo может быть source (по умолчанию) или none, чтобы указать уровень подробности комментариев к коду.
InteractiveUtils.@code_nativeМакрос
@code_native
Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает code_native для полученного выражения.
Установите необязательный ключевой аргумент debuginfo перед вызовом функции, например так:
@code_native debuginfo=:default f(x)
debuginfo может быть одним из :source (по умолчанию) или :none, чтобы указать уровень подробности комментариев к коду.
InteractiveUtils.clipboardФункция
clipboard(x)
Отправить отформатированную версию x в буфер обмена операционной системы («копировать»).
clipboard() -> AbstractString
Возвращает строку с содержимым буфера обмена операционной системы («вставить»).
исходный код
© 2009–2021 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.6.0/stdlib/InteractiveUtils/