【发布时间】:2021-07-30 21:16:16
【问题描述】:
我想在Julia中锁定一个变量的类型,怎么办?比如我定义了一个叫weight的数组,
weight = Array{Float64,1}([1,2,3])
现在我想将权重类型锁定为Array{Float64,1},可以吗?
我的意思是如果不锁定重量的类型,那么如果我错误地或随便地这样做了
weight = 1
那么weight就会变成一个Int64变量,所以不再是一维数组了。这显然不是我想要的。
我只想确保一旦我将权重定义为 1D Float64 数组,那么如果我更改权重类型,我希望 Julia 给我一个错误,指出权重类型已更改,这是不允许的。是否可以?谢谢!
这很有用,因为这样做可以防止我忘记重量是一维数组,从而防止错误。
【问题讨论】:
-
你可以写
[1.0, 2.0, 3.0]而不是Array{Float64,1}([1,2,3])。 Julia 根据数组元素计算出数组的类型。你写的方式先创建一个整数向量,然后再转换成浮点数向量,很浪费。 -
@DNF 你是对的人!是的,是的,是的,我可以写 1.0 2.0 3.0。问题是,一旦我写下这个数组,我想确保 weight 始终是一个浮点数组。有可能在代码中我可能忘记了权重是一个浮点数组,并且不小心做了诸如权重 = 1.0 之类的事情,它会使权重变成一个变量而不是一个数组。我想确保重量的类型永远不会改变。在 fortran 中,我们可以先定义类型。但是在 Julia 中,由于事情是动态的,我想做一些类型保护来防止偶然的错误,这些错误会改变变量或数组的类型。
-
当然,但这些都是正交问题。你可以
const weight = [1.0, 2.0, 3.0]
标签: julia