Go,Java和C#中数组的最大长度是多少?

时间:2014-10-29 03:40:32

标签: java c# go

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

1 个答案:

答案 0 :(得分: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

Go数组长度是类型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