【go】Golang Go语言中数组初始化 赋值 问题

例如:

func main(){

**var arrayTest []int

for i:=1; i < 100; i++ {

arrayTest[i] = rand.Intn(100)

}**

mergeSort(arrayTest,0,len(arrayTest)-1)

}

func mergeSort(arrayTest int[],i int,length int){

..........

}

运行时 为什么会报 panic: runtime error: index out of range ?该如何写 第一句

我把第一句改成 var arrayTest [100]int 后 mergeSort(arrayTest int[],i int,length int)必须改为mergeSort(arrayTest int[100],i int,length int)才行,但是这样又排不了序

请教大神!!!

我看了下 改成这样就可以了

    func main() {

var tempArray [n]int

for i:=0; i < n; i++ {

tempArray[i] = rand.Intn(n)+1

}

arrayTest := tempArray[0:n]

fmt.Println("Start to Sort:")

//Run sort algorithms

fmt.Println( "MergeSort:" )

mergeSort(arrayTest,0,len(arrayTest)-1)

}

mergeSort中传的参数是数组引用或切片 要满足要求的话,直接把初始化的数组tempArray[i]转成切片就可以了:arrayTest := tempArray[0:n]

func main() {

var tempArray [n]int

for i:=0; i < n; i++ {

tempArray[i] = rand.Intn(n)+1

}

arrayTest := tempArray[0:n]

fmt.Println("Start to Sort:")

//Run sort algorithms

fmt.Println( "MergeSort:" )

mergeSort(arrayTest,0,len(arrayTest)-1)

}

arrayTest := meke([]int,100)

golang">package main

import (

"math/rand"

)

func main() {

var arrayTest []int

for i := 1; i < 100; i++ {

arrayTest[i] = rand.Intn(100)

}

mergeSort(arrayTest[0:100], 0, len(arrayTest)-1)

}

func mergeSort(arrayTest []int, i int, length int) {

//..........

}

没有申明数组大小,只需要调用mergeSort时,传切片.

使用切片,具体可以参考 这篇文章 Go语言实战笔记(五)| Go 切片

回答

以上是 【go】Golang Go语言中数组初始化 赋值 问题 的全部内容, 来源链接: www.h5w3.com/113130.html

回到顶部