You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia构造Array{Any}时如何避免元素被自动类型转换

Julia构造Array{Any}保留元素原始类型的解决方案

问题原因

出现元素自动类型转换的核心原因是:当你书写Array{Any}([false, 0.5, 5])时,内层的字面量数组[false, 0.5, 5]会先被Julia自动执行类型提升,生成Vector{Float64}类型的数组后才会传入外层的Array{Any}构造函数,因此最终得到的Any数组元素全为浮点数。
而加入字符串后,内层字面量的多种元素没有可统一提升的公共类型,Julia默认就会生成Vector{Any},再传入外层构造后自然保留原始类型。

最优单行解决方案

直接使用Julia原生的显式类型数组构造语法即可,无需额外操作:

Any[false, 0.5, 5]

运行结果如下:

julia> Any[false, 0.5, 5]
3-element Vector{Any}:
  false
 0.5
 5

该语法会直接构造Array{Any},不会提前对元素做类型提升,完全保留所有元素的原始类型。

其他可选方案

如果你的元素已经存储在元组中,也可以使用如下写法:

Vector{Any}((false, 0.5, 5))

内容的提问来源于stack exchange,提问作者Stuart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 11:51:02