julia - 创建 Julia 元组
问题描述
当我试图理解 Julia 中的元编程时:分别在这段代码中缺少什么,我怎样才能调用正确的构造函数Tuple
?
x = (:a, :b)
p = quote
f_a = 3
f_b = 4
y = Tuple($([Symbol("f_", k) for k in x]...))
end
这将为我生成以下代码:
quote
f_a = 3
f_b = 4
y = Tuple(f_a, f_b)
end
这当然是错误的,因为 Tuple 没有合适的构造函数。我希望y
最终成为一个元组,但我还没有看到如何获得额外的括号。
换句话说,这段代码中缺少什么:
x = (:a, :b)
p = quote
f_a = 3
f_b = 4
y = ($([Symbol("f_", k) for k in x]...))
end
eval(p)
@assert isa(y, Tuple)
解决方案
可以打个逗号
x = (:a, :b)
p = quote
f_a = 3
f_b = 4
y = ($([Symbol("f_", k) for k in x]...),) # added a comma here
end
eval(p)
@assert isa(y, Tuple)
以下内容可能具有指导意义
julia> (3)
3
julia> (3,)
(3,)
julia> typeof(ans)
Tuple{Int64}
推荐阅读
- c# - Serilog 记录器接收器的最小和最大级别
- sql-server - CTE 之后的 IF 语句
- php - 带有 vue 和 Laravel 的 Pusher 仅适用于仪表板事件创建者
- java - 如何在 Java 中使用 toUpperCase() 更改字符
- spring-mvc - Spring-MVC - 从 web-jar 加载静态资源导致 WebSphere Liberty 中的异常
- java - Java 8:从列表的列表中获取属性
- javascript - 如何使用 Glide.js 同步两个 Slider
- azure - Azure 应用服务:“磁盘空间不足。” 虽然 300MB/50GB
- c# - 是否有官方 LUIS API 可以返回每个意图的话语总数?
- kentico - Kentico editor_styles 双编辑窗口