2014-10-29 76 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 
相關問題