Интерактивные утилиты
Этот модуль предназначен для интерактивной работы. Он загружается автоматически в интерактивном режиме.
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: вывести всю дополнительную информацию
См. также: VERSION.
InteractiveUtils.methodswithФункция
methodswith(typ[, module or function]; supertypes::Bool=false])
Возвращает массив методов с аргументом типа typ.
Необязательный второй аргумент ограничивает поиск определённым модулем или функцией (по умолчанию — все модули верхнего уровня).
Если ключевой аргумент supertypes равен true, также возвращает аргументы с родительским типом typ, исключая тип Any.
InteractiveUtils.subtypesФункция
subtypes(T::DataType)
Возвращает список непосредственных подтипов типа данных T. Обратите внимание, что включаются все загруженные подтипы, включая те, которые не видны в текущем модуле.
См. также supertype, supertypes, methodswith.
Примеры
julia> subtypes(Integer)
3-element Vector{Any}:
Bool
Signed
Unsigned
исходный код
InteractiveUtils.supertypesФункция
supertypes(T::Type)
Возвращает кортеж (T, ..., Any) типа T и всех его родительских типов, как определено последовательными вызовами функции supertype, перечисленных в порядке <: и завершённых Any.
См. также subtypes.
Примеры
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
- micro
- kak
- 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 на полученном выражении.
См. также: @edit, @which, @code_lowered.
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, binary=false)
Выводит инструкции машинного кода, сгенерированные для выполнения метода, соответствующего данной обобщенной функции и подписи типа, в io.
Переключить синтаксис ассемблера с помощью символа syntax , установленного в :att для синтаксиса AT&T или :intel для синтаксиса Intel. Ключевой аргумент debuginfo может быть source (по умолчанию) или none, чтобы указать подробность комментариев к коду. Если binary равно true, то также выводятся бинарные машинные коды для каждой инструкции, предваряемые сокращенным адресом.
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.7.0/stdlib/InteractiveUtils/