我想在Julia 0.4中创建一个Uint64s的2D数组。这工作在0.3:
s = 128
a = zeros(Uint64, s, s)::Array{Uint64,2}
它继续编译但给我通知
WARNING: Base.Uint64 is deprecated, use UInt64 instead.
我不知道这个消息是什么意思。我试过谷歌搜索错误信息,但没有发现任何有用的东西。什么是不会产生任何警告的等效代码行?
答案 0 :(得分:4)
s = 128
a = zeros(UInt64, s, s)::Array{UInt64,2}
留意首都!
答案 1 :(得分:4)
s = 128
a = zeros(UInt64, s, s)
您不需要类型注释::Array{UInt64,2}
。定义a = zeros(UInt64, s, s)
将创建一个知道其类型的变量。
请注意,Julia错误消息告诉您必须执行的操作 - 将Uint64
替换为UInt64
。如果你能想出一种更好的方式来重新改写信息,那么听听就更有用了。
通常,在Julia中定义变量时,类型注释最多是冗余的 - 从右侧的类型自动推断出类型,这将是分配给正在创建的变量的类型。
在两种情况下,Julia中使用了类型注释: 1.在复合类型中定义变量的类型 2.对于函数定义中的多个分派,指定给定方法适用的类型。