Julia v0.6 函数内部宏

2024-01-08

有人可以解决我遇到的这个宏错误吗,它只在版本 0.6 中开始发生:

mutable struct Foo
    x::Int
end

macro test(myfoo)
    quoteblock = 
    quote
    myfoo.x += 1
    end

    return quoteblock
end

function func(myfoo)
    @test myfoo
    println(myfoo.x)
end

foo = Foo(3)
func(foo)

理论上这应该只是替换该行@test myfoo在函数中func with myfoo.x += 1在编译时,这应该可以工作,但我收到错误:

UndefVarError: myfoo not defined

列出了相应的变更说明here https://github.com/JuliaLang/julia/blob/master/NEWS.md#breaking-changes-1:

当在定义该宏的模块中调用宏时, 宏中的全局变量现在可以在宏中正确解析 定义环境。这种变化造成的破坏通常表现为 作为 0.5 以下不会发生的未定义变量错误。修复此类 破损通常需要在 有问题的宏(#15850)。

所以答案就是逃避myfoo:

macro test(myfoo)
   quote   
     $(esc(myfoo)).x += 1
   end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Julia v0.6 函数内部宏 的相关文章

  • 我可以在 Julia 中专门化类型定义吗?

    Julia 的参数类型实际上定义了一系列包含不同内存布局的类型 我想知道这是否也适用于复合类型中的字段名称和数量 一个简单的例子如下 type mytype Float64 a Float64 b Float64 end type myty
  • 如何从 Julia 程序调用 Python 函数?

    我使用 numpy pandas scikit learn 在 Python 中编写了一些代码 是否可以从 Julia 程序调用此 Python 代码 我认为你可以考虑三种不同的方式从 Julia 调用 Python 代码 按照从最低级别到
  • 如何生成随机概率分布 julia

    我在字典中有一个键列表 我想为每个项目分配一个 0 到 1 之间的数字 使分配的数字总和为 1 如何做到这一点 我尝试使用 rand 进行一些操作 但没有成功 有什么建议么 更数学的答案是使用狄利克雷分布 https en wikipedi
  • 为什么我的 Julia 代码运行速度比 JavaScript 慢?

    最近 我对 Julia lang 很感兴趣 因为它声称是一种具有接近 C 性能的动态语言 然而 到目前为止我的经验并不好 至少在性能方面 我正在编写的应用程序需要随机访问特定的数组索引 然后将它们的值与其他特定的数组索引进行比较 经过多次迭
  • Julia 转置 DataFrame 中的分组数据?

    ds Dataset group repeat 1 3 inner 2 b repeat 1 2 inner 3 c repeat 1 1 inner 6 d repeat 1 6 inner 1 e string a f 在inmemor
  • 使用JuMP时如何转换变量的类型

    我正在使用 Julia JuMP 来实现算法 在一部分中 我定义了一个具有连续变量的模型并求解线性模型 我做了一些其他计算 在此基础上向模型添加了一些约束 然后我想用整数变量来解决相同的问题 我无法使用convert 函数 因为它不带变量
  • 如何在命令行中执行 Julia 代码?

    我最近在 Julia 中转移了我的代码 我想知道如何在命令行中执行 Julia 代码 我知道 Julia 代码可以通过运行一次来 编译 但问题是我需要对集 群上的模拟模型进行参数扫描 我只能使用命令行 而不能使用 REPL 在集群上运行模拟
  • Julia ccall 接口和符号的问题

    我正在尝试使用朱莉娅的ccall与 C 库接口的函数 所有类型和指针都是正确的 并且下面的函数调用成功返回正确的答案 为简洁起见 此处未显示变量定义和设置 ccall vDSP convD libacc Void Ptr T Int64 P
  • Julia 泛型函数类型参数

    我定义了一个函数如下 function approx pi n tot Float64 0 0 for i in 1 n x rand y rand if x 2 y 2 lt 1 tot 1 end end tot n 4 end pri
  • 带有 varargs 的 Julia @evalpoly 宏

    我正在尝试使用 Julia 的 evalpoly宏 当我手动提供系数时它可以工作 但我一直无法弄清楚如何通过数组提供这些系数 julia gt VERSION v 0 3 5 julia gt evalpoly 0 5 1 2 3 4 3
  • 埃拉托斯特尼筛法速度比较:Python 与 Julia

    所以我有一个用 Python 和 Julia 编写的 Eratosthenes 函数的小筛子 并且我正在比较运行时间 这是Python代码 import time def get primes n numbers set range n 1
  • 朱莉娅中未显示情节

    我有一个名为 mycode jl 的文件 其中包含以下代码here https juliastats org MultivariateStats jl dev pca using MultivariateStats RDatasets Pl
  • Julia 中 @with_kw 和 Base.@kwdef 之间的区别?

    受到这个问题评论的启发 with kw 在 Julia 中做什么 https stackoverflow com questions 69586136 what does with kw do in julia 有什么区别 with kw
  • Julia 中过时的软件包列表

    有没有办法列出 Julia 中所有过时的软件包 相当于pip3 list outdated在Python中 我做了几次搜索 1 https docs julialang org en v1 stdlib Pkg 2 https pkgdoc
  • 使用 Julia 的 Debugger.jl - 如何进入类似于 Python 的 pdb.set_trace() 或 ipdb.set_trace() 的调试模式?

    Julia 的新 Debugger jl 很棒 但有时要达到我想要达到的代码中的确切位置有点痛苦 有没有办法可以进入交互式调试模式 类似于 Python 在 pdb set trace 或 ipdb set trace 中的模式 例如 我希
  • 如何在一张图中显示多个相邻的图像?

    我正在使用 Julia PyPlot 和 Images 来处理一些图片 因为显示几十个图是不可能的 所以我想堆叠图像 如下所示 我有图像数据Array Array Float64 2 1 已经正常化了 以下代码仅显示最后一个最小的图像 该数
  • 从 Julia 中的文本文件读取数据矩阵

    我有一个包含矩阵的文本文件 我想在朱莉娅中将其作为矩阵来阅读 文本文件如下 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 在 matlab 中 您可以执行以下操作来创建矩阵M
  • 如何在 Julia 中保存文件

    在某些时候 我认为 Julia v0 7 你可以做 save savepath thingtosave为了使用 Julia 保存文件 我尝试在 v0 7 上运行它 看看是否收到弃用警告 但即使在 0 7 上 它也说 save未定义 如何使用
  • 在 Julia 中解压缩元组数组

    假设我有一个元组数组 arr 1 2 3 4 5 6 使用 python 我可以做zip arr 1 3 5 2 4 6 朱莉娅中与此等效的是什么 作为 splatting 的替代方案 因为这非常慢 您可以执行以下操作 unzip a ma
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采

随机推荐

  • Spring BeanPostProcessor 究竟是如何工作的?

    我正在学习 Spring Core 认证 我对 Spring 如何处理这些问题有一些疑问Bean 生命周期特别是关于Bean 后处理器 所以我有这个架构 我很清楚这意味着什么 以下步骤发生在加载 Bean 定义 phase The 配置类被
  • 如何在 Visual Studio 2008“Pro”中进行性能分析

    微软将这款软件称为 Visual Studio 2008 Professional 我发现其中似乎没有应用程序性能分析器或类似的东西 这使得它对我来说似乎不那么 专业 如果 Microsoft 不包含分析器 您有哪些第三方选项可以用于 Vi
  • 数据仓库中的时间和日期维度

    I m building a data warehouse Each fact has it s timestamp I need to create reports by day month quarter but by hours to
  • 如何分配线程来处理 Servlet 请求?

    有人可以解释一下什么是每个请求线程和每个连接线程吗 servlet 适用于哪种模型 如何分配线程来处理 HTTP 请求 是线程 请求还是连接 假设我想在我的计算机中执行一项耗时的任务Servlet s doGet 方法异步 我使用 Java
  • 无需预处理器即可扩展 C/C++ 函数宏

    如何在 C C 文件中测试 扩展所有函数宏 而不通过预处理器运行它 例如 是否有一个程序或方法可以改变这一点 include
  • PHP服务器ERR_CONNECTION_REFUSED

    我无法让 php 服务器在我的本地计算机上运行 我尝试使用 wampserver 和 Easy PHP 我检查了我的使用情况port 80 我更改了端口 80 to 8080 我给了 Apache 和 mysql 防火墙设置所需的权限 我做
  • 在 WPF 中将窗口的 DataContext 绑定到窗口本身

    我有一个继承自 Window 的简单对话框窗口 我在 XAML 中设置它的 DataContext 如下所示
  • 从 efi 应用程序发送 TCP 或 UDP 数据包

    我想开发一个在 EFI shell 中从startup nsh 自动执行的应用程序 此应用程序应将原始字节发送到 IP 地址并接收一些返回的字节 我到处寻找在我的代码中实现简单网络协议的解释和示例 但一无所获 有人可以解释并显示使用 gnu
  • C# 构造函数执行顺序

    在 C 中 当你这样做时 Class Type param1 Type param2 base param1 是先执行类的构造函数 然后调用超类构造函数 还是先调用基类构造函数 顺序是 层次结构中所有类的成员变量都初始化为默认值 然后从最派
  • 如何在 Swift 中将 base64String 转换为 String? [复制]

    这个问题在这里已经有答案了 我从 NSData 中的 Web 服务响应接收到一个 base64 字符串 如何在 swift 中将 dat base64 字符串转换为字符串 Code var jsonResult NSJSONSerializ
  • 使用外部数据扩展 Keycloak 中的用户访问令牌

    我们使用 Keycloak 服务作为 SSO 解决方案 并将生成的 JWT 提供给不同的微服务 效果非常好 但现在我们遇到的问题是 当用户尝试登录时 JWT 必须使用来自外部资源的数据进行扩展 更具体地说 一个用户可以通过一个唯一的ID作为
  • 如何使用Wix安装.NET Framework的可再发行包?

    我有一个一般任务 在产品设置过程中安装 NET Framework 3 5 我执行以下操作 我创建了一个自定义操作 X 自定义操作 X 通过 Process Start 启动可执行文件 Y 可执行文件 Y 终止 msiexec 进程并运行
  • LPHANDLE 与 HANDLE

    在浏览一些代码时 我发现了一个调用打开打印机 http msdn microsoft com en us library dd162751 aspx 该代码可以编译并且运行良好 但是 我们正在通过一个HANDLE代替LPHANDLE 如 M
  • 正则表达式匹配 ini 值

    我正在尝试匹配 ini 行值的姓氏 foo bar far boo some value 我可以匹配 boo 但我只需要 boo I do w s 但它匹配等号 但我不希望它匹配 顺便说一句 如果没有像这样的子值 我应该能够得到 foo v
  • 使用子模块创建公共存储库

    我想创建一个包含多个子模块的公共存储库 裸存储库 我希望不同的人克隆这个裸存储库 在任何子模块中进行更改 更新公共存储库 然而 我意识到这是相当痛苦的 我希望我的存储库如下所示 我有四个独立的存储库 a kernel b rootfs c
  • 无法在 XML 文件上 insertBefore

    我正在尝试编写一个脚本来更新 RSS XML 文件 我希望它获取现有文件并将新项目添加到项目列表的顶部 我之前已经将其添加到文件末尾 但现在它根本没有添加新项目 我已经在网上检查过 但仍然无法使其工作 这是我到目前为止所拥有的 rssDoc
  • python 模块存储在哪里?

    我最近开始学习Python 有两个与模块相关的问题 有没有办法获取机器上可用 即安装 的Python模块列表 我使用 Ubuntu Karmic 和 Synaptic 进行包管理 我刚刚安装了一个 python 模块 模块代码实际存储在我的
  • 能让代码分析理解代码契约吗?

    当组合使用代码分析和代码契约时 我收到很多警告 例如 CA1062 http msdn microsoft com en us library ms182182 aspx Microsoft Design 在外部可见的方法 Foo Bar
  • ggmap,使用 coord_cartesian 将所有点推向北方

    正如标题所说 当我添加时coord cartesian到我的 ggmap 它将我所有的点都向上移动 这是一些数据 pricedata lt structure list nodename c CIN WABRIVR 2 CIN WHEATC
  • Julia v0.6 函数内部宏

    有人可以解决我遇到的这个宏错误吗 它只在版本 0 6 中开始发生 mutable struct Foo x Int end macro test myfoo quoteblock quote myfoo x 1 end return quo