我可以在Go,Java和C#中声明的数组的最大长度是多少?它与运行时的最大内存有关吗?或者他们有标准吗?
答案 0 :(得分:1)
The Go Programming Language Specification
数组是单个类型的元素的编号序列,称为 元素类型。元素的数量称为长度 永远不会消极。
长度是数组类型的一部分;它必须评估为 非负常数,可由
int
类型的值表示。数值类型表示整数或浮点值的集合。
有一组预先声明的数字类型 特定于实现的大小:
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