2016-03-08 26 views
1

我想在Julia 0.4中创建一个Uint64s的二维数组。这曾在0.3:解决Julia 0.4弃用Uint64

s = 128 
a = zeros(Uint64, s, s)::Array{Uint64,2} 

它继续编译,但给我的通知

WARNING: Base.Uint64 is deprecated, use UInt64 instead. 

我不知道这是什么消息表示。我试着用Google搜索错误信息,但没有发现任何有用的信息。什么是不会产生任何警告的等效代码行?

+0

您不需要类型注释(':: Array ...') –

回答

4
s = 128 
a = zeros(UInt64, s, s)::Array{UInt64,2} 

小心大写!

4

道格的答案是正确的,但您可以将其简化为

s = 128 
a = zeros(UInt64, s, s) 

你不需要类型标注::Array{UInt64,2}。定义a = zeros(UInt64, s, s)将创建一个知道它的类型的变量。

请注意,Julia错误消息告诉你你必须做什么 - 用UInt64替换Uint64。如果你可以想出一个更好的方式来重新描述消息更清晰,那么听到就会有用。

一般来说,在Julia中定义变量时,类型注释至多是多余的 - 类型是根据右边类型自动推断的,并且这将是分配给正在创建的变量的类型。

类型的注释在朱莉娅使用在两种情况下: 1.定义的变量类型的复合型 2.在函数定义的多个调度内,指定给定方法适用于哪些类型。

+0

感谢有关签名的信息。关于错误信息,除非大写字母真的很难被发现,否则是正确的!也许如果这两种类型(没有命名空间和小写字母)是相同的字符串,请说“注意你的大小写”? – mgold

相关问题