AnyMath 文档

交互式实用程序

交互式活动 模块提供了用于交互使用Julia的实用程序,例如代码内省和剪贴板访问。 它用于交互式工作,并自动加载在 互动模式

apropos([io::IO=stdout], pattern::Union{AbstractString,Regex})

搜索包含以下条目的可用文档 模式.

何时 模式 是一个字符串,大小写被忽略。 结果打印到 伊俄.

阿普洛斯 可以通过用双引号包装查询从REPL中的帮助模式调用:

help?> "pattern"
varinfo(m::Module=Main, pattern::Regex=r""; all=false, imported=false, recursive=false, sortby::Symbol=:name, minsize::Int=0)

返回一个markdown表,提供有关模块中公共全局变量的信息,可选地仅限于匹配的变量 模式.

内存消耗估计值是对象内部结构大小的近似下限。

* 全部 :还列出模块中定义的非公共对象、已弃用的对象和编译器生成的对象。 * 进口 :还列出从其他模块显式导入的对象。 * 递归 :递归地在子模块中包含对象,在每个子模块中观察相同的设置。 * 索特比 :排序结果的列。 选项是 :姓名 (默认), :尺寸,而 :摘要. * 小型化 :仅包括大小至少为 小型化 字节。 默认值为 0.

的输出 varinfo的 仅用于显示目的。 请参阅 姓名获取在模块中定义的符号数组,该数组适用于更一般的操作。

versioninfo(io::IO=stdout; verbose::Bool=false)

打印有关使用中的Julia版本的信息。 输出由布尔关键字参数控制:

* 详细,详细:打印所有附加信息

警告此函数的输出可能包含敏感信息。 在共享输出之前,请查看输出并删除任何不应公开共享的数据。

请参阅: 版本.

methodswith(typ[, module or function]; supertypes::Bool=false])

返回具有类型参数的方法数组 typ.

可选的第二个参数将搜索限制为特定模块或函数(默认为所有顶级模块)。

If关键字 超类型真的,也返回父类型为 typ,不包括类型 任何.

请参阅: 方法.

subtypes(T::DataType)

返回数据类型的直接子类型列表 T. 请注意,所有当前加载的子类型都包括在内,包括那些在当前模块中不可见的子类型。

*例子*

julia> subtypes(Integer)
3-element Vector{Any}:
 Bool
 Signed
 Unsigned
supertypes(T::Type)

返回一个元组 (T,。..,任何)T 以及它的所有超类型,由对 超类型功能,按顺序列出 <: 并终止于 任何.

请参阅 亚型.

*例子*

julia> supertypes(Int)
(Int64, Signed, Integer, Real, Number, Any)
edit(path::AbstractString, line::Integer=0, column::Integer=0)

编辑文件或目录可选地提供行号以编辑文件。 返回 朱莉娅 退出编辑器时提示。 编辑器可以通过设置来更改 朱莉亚*编辑, 视觉效果编辑 作为环境变量。

兼容性

朱莉娅1.9 专栏 论证至少需要Julia1.9。

edit(function, [types])
edit(module)

编辑函数的定义,可选地指定类型元组以指示要编辑的方法。 对于模块,打开主源文件。 模块需要加载 使用进口 首先。

兼容性

朱莉娅1.1 编辑 在模块上至少需要Julia1.1。

为了确保文件可以在给定行打开,您可能需要调用 InteractiveUtils.辩护律师 首先。

@edit

计算函数或宏调用的参数,确定它们的类型,并调用 编辑结果表达式上的函数。

请参阅: @少, @哪个.

define_editor(fn, pattern; wait=false)

定义新的编辑器匹配 模式 它可以用来打开一个文件(可能在一个给定的行号),使用 fn的.

fn的 参数是一个函数,它决定如何使用给定的编辑器打开文件。 它应该有四个参数,如下所示:

* cmd公司 -编辑器的基本命令对象 * 路径 -打开源文件的路径 * -打开编辑器的行号 * 专栏 -打开编辑器的列号

无法使用命令或特定列打开特定行的编辑器可能会忽略 和/或 专栏 争论。 该 fn的 回调必须返回一个适当的 Cmd公司 打开文件或 什么都没有 以表示他们无法编辑此文件。 使用方法 什么都没有 指示此编辑器不适用于当前环境,应尝试使用另一个编辑器。 通过将回调直接推送到向量,可以添加不需要生成外部命令的更通用的编辑挂钩 编辑_回调.

模式 参数是字符串、正则表达式或字符串和正则表达式的数组。 为 fn的 要被调用,其中一个模式必须与 编辑, 视觉效果朱莉亚*编辑. 对于字符串,字符串必须等于 基本名称编辑器命令的第一个单词,其扩展名(如果有的话)被删除。 例如,"vi"不匹配"vim-g",但匹配"/usr/bin/vi-m";它也匹配 vi.exe. 如果 模式 是一个正则表达式,它作为shell转义的字符串与所有编辑器命令匹配。 如果数组模式的任何项匹配,则数组模式匹配。 如果多个编辑器匹配,则使用最近添加的编辑器。

默认情况下,julia不会等待编辑器关闭,而是在后台运行它。 但是,如果编辑器是基于终端的,您可能需要设置 等待=真 而julia会等待编辑关闭后再恢复。

如果设置了一个编辑器环境变量,但没有编辑器条目与之匹配,则调用默认编辑器条目:

(cmd, path, line, column) -> `$cmd $path`

请注意,许多编辑器已经定义。 以下所有命令都应该已经工作:

*emacs *emacsclient *vim *nvim *纳米 *微 *卡克 *螺旋线 *textmate *伴侣 *凯特 *subl *原子 *记事本++ *Visual Studio代码 *打开 *pycharm *bbedit

*例子*

下面定义了基于终端的用法 emacs的:

define_editor(
    r"\bemacs\b.&ast;\s(-nw|--no-window-system)\b", wait=true) do cmd, path, line
    `$cmd +$line $path`
end
兼容性

朱莉娅1.4 辩护律师 是在Julia1.4中引入的。

less(file::AbstractString, [line::Integer])

使用默认寻呼机显示文件,可选地提供起始行号。 返回 朱莉娅 退出寻呼机时提示。

less(function, [types])

使用默认寻呼机显示函数的定义,可选地指定类型元组以指示要查看的方法。

@less

计算函数或宏调用的参数,确定它们的类型,并调用 更少结果表达式上的函数。

请参阅: @编辑, @哪个, @code_lowered.

@which

应用于函数或宏调用,它计算指定调用的参数,并返回 方法 将为这些参数调用的方法的对象。 应用于变量,它返回变量绑定的模块。 它向 其中功能。

请参阅: @少, @编辑.

@functionloc

应用于函数或宏调用,它计算指定调用的参数,并返回一个元组 (文件名,行) 给出为这些参数调用的方法的位置。 它向 功能集功能。

@code_lowered

计算函数或宏调用的参数,确定它们的类型,并调用 [医鳕鱼]在所得到的表达式上。

@code_typed

计算函数或宏调用的参数,确定它们的类型,并调用 代码类型在所得到的表达式上。 使用可选参数 优化

@code_typed optimize=true foo(x)

控制是否还应用其他优化(如内联)。

code_warntype([io::IO], f, types; debuginfo=:default)

为匹配给定的泛型函数和类型签名的方法打印降低的和类型推断的ASTs 伊俄 默认为 标准输出. ASTs的注释方式是导致非具体类型,这可能是问题的性能强调(如果颜色可用,显示为红色)。 这可作为潜在类型不稳定的警告。

并非所有的非具体类型对于性能都是特别有问题的,并且特定类型的性能特征是编译器的实现细节。 code_warntype 如果它们可能是性能问题,则会在着色类型红色方面出错,因此即使它们不影响性能,某些类型也可能会着色为红色。 混凝土类型的小工会通常不是一个问题,所以这些都以黄色突出显示。

关键字参数 debuginfo,debuginfo 可能是 :资料来源:无 (默认),用于指定代码注释的详细程度。

查看 @code_warntype手册性能提示页面中的部分以获取更多信息。

@code_warntype

计算函数或宏调用的参数,确定它们的类型,并调用 code_warntype在所得到的表达式上。

code_llvm([io=stdout,], f, types; raw=false, dump_module=false, optimize=true, debuginfo=:default)

打印为运行与给定泛型函数和类型签名匹配的方法而生成的LLVM位码 伊俄.

如果 优化 关键字未设置,代码将在LLVM优化之前显示。 所有元数据和dbg。*从打印的位码中删除调用。 对于完整的IR,设置 生的 关键字为true。 要转储封装函数的整个模块(带有声明),请设置 转储器/转储器 关键字为true。 关键字参数 debuginfo,debuginfo 可以是source(默认)或none之一,以指定代码注释的详细程度。

@code_llvm

计算函数或宏调用的参数,确定它们的类型,并调用 code_llvm在所得到的表达式上。 设置可选关键字参数 生的, 转储器/转储器, debuginfo,debuginfo, 优化 通过将它们和它们的值放在函数调用之前,如下所示:

@code_llvm raw=true dump_module=true debuginfo=:default f(x)
@code_llvm optimize=false f(x)

优化 控制是否还应用其他优化(如内联)。 生的 使所有元数据和dbg。*呼叫可见。 debuginfo,debuginfo 可能是 :资料来源 (默认)或 :无,以指定代码注释的详细程度。 转储器/转储器 打印封装函数的整个模块。

code_native([io=stdout,], f, types; syntax=:intel, debuginfo=:default, binary=false, dump_module=true)

打印为运行与给定泛型函数和类型签名匹配的方法而生成的本机程序集指令 伊俄.

*通过设置设置程序集语法 语法:英特尔 (默认)对于英特尔语法或 :att 对于AT&T;语法. *通过设置指定代码注释的详细程度 debuginfo,debuginfo:资料来源 (默认)或 :无. *如果 二进制真的,还打印每条前面有缩写地址的指令的二进制机器代码。 *如果 转储器/转储器错误,不要打印元数据,如rodata或指令。 *如果 生的错误,无趣的指令(如safepoint函数序章)被忽略。

@code_native

计算函数或宏调用的参数,确定它们的类型,并调用 编码,编码在所得到的表达式上。

设置任意可选关键字参数 语法, debuginfo,debuginfo, 二进制转储器/转储器 通过将它放在函数调用之前,如下所示:

@code_native syntax=:intel debuginfo=:default binary=true dump_module=false f(x)

*通过设置设置程序集语法 语法:英特尔 (默认)对于英特尔语法或 :att 对于AT&T;语法. *通过设置指定代码注释的详细程度 debuginfo,debuginfo:资料来源 (默认)或 :无. *如果 二进制真的,还打印每条前面有缩写地址的指令的二进制机器代码。 *如果 转储器/转储器错误,不要打印元数据,如rodata或指令。

@time_imports

一个宏,用于执行表达式并生成导入包及其依赖项所花费的任何时间的报告。 任何编译时间都将以百分比报告,其中有多少是重新编译(如果有的话)。

每个包或包扩展打印一行。 显示的持续时间是导入该包本身的时间,不包括加载其任何依赖项的时间。

关于朱莉娅1.9+ 包扩展将显示为父→扩展.

注意在加载过程中,包会按顺序导入其所有依赖项,而不仅仅是直接依赖项。

julia> @time_imports using CSV
     50.7 ms  Parsers 17.52% compilation time
      0.2 ms  DataValueInterfaces
      1.6 ms  DataAPI
      0.1 ms  IteratorInterfaceExtensions
      0.1 ms  TableTraits
     17.5 ms  Tables
     26.8 ms  PooledArrays
    193.7 ms  SentinelArrays 75.12% compilation time
      8.6 ms  InlineStrings
     20.3 ms  WeakRefStrings
      2.0 ms  TranscodingStreams
      1.4 ms  Zlib_jll
      1.8 ms  CodecZlib
      0.8 ms  Compat
     13.1 ms  FilePathsBase 28.39% compilation time
   1681.2 ms  CSV 92.40% compilation time
兼容性

Julia1.8这个宏至少需要Julia1.8

@trace_compile

一个宏,用于执行表达式并显示已编译(或以黄色重新编译)的任何方法,如julia args --trace-compile=stderr—​trace-compile-timing 但特别是为了一个电话。

julia> @trace_compile rand(2,2) &ast; rand(2,2)
#=   39.1 ms =# precompile(Tuple{typeof(Base.rand), Int64, Int64})
#=  102.0 ms =# precompile(Tuple{typeof(Base.:(&ast;)), Array{Float64, 2}, Array{Float64, 2}})
2×2 Matrix{Float64}:
 0.421704  0.864841
 0.211262  0.444366
兼容性

Julia1.12这个宏至少需要Julia1.12

@trace_dispatch

用于执行通过动态调度编译的表达式和报表方法的宏,如julia arg --trace-dispatch=stderr 但特别是为了一个电话。

兼容性

Julia1.12这个宏至少需要Julia1.12

clipboard(x)

发送打印的表格 x 到操作系统剪贴板("复制")。

clipboard() -> String

返回包含操作系统剪贴板内容的字符串("粘贴")。