2014-10-29 90 views
-2

我可以在Go,Java和C#中声明的数组的最大长度是多少?它与运行时的最大内存有关吗?或者他们是否有标准?Go,Java和C#中数组的最大长度是多少?

+0

在Java中,'阵列的length'是一个'int'字段,所以阵列的最大长度由'Integer.MAX_VALUE'确定。 – 2014-10-29 03:43:59

+0

..并且在.NET中与'int.MaxValue'类似。 – 2014-10-29 03:45:35

+0

@LuiggiMendoza看起来是'Integer.MAX_VALUE - 5'。请参阅[这里](http://stackoverflow.com/a/3039805/3558960) – 2014-10-29 03:45:36

回答

1

The Go Programming Language Specification

Array types

数组是一种单一类型的元素的编号序列,称为 元素类型。元素的数量称为长度,并且从不是负数。

长度是数组类型的一部分;它必须评估为 非负常数,可用int类型的值表示。

Numeric types

数字类型表示集整数或浮点值的。

没有与 特定于实现的尺寸的一组预声明的数字类型的:

 
uint  the set of all unsigned integers, either 32 or 64 bits 
int  the set of all signed integers, same size as uint 

转到阵列长度为int类型的值,这是一个32位或64位带符号的整数,这取决于编译体系结构(GOARCH),例如386或amd64。它也受到任何硬件或操作系统内存大小的限制。

package main 

import (
    "fmt" 
    "runtime" 
    "strconv" 
) 

func main() { 
    fmt.Println("int is", strconv.IntSize, "bits on", runtime.GOARCH) 
} 

输出:

 
int is 64 bits on amd64 
相关问题