go语言基础之切片做函数参数

1、切片做函数参数 (备注:用了冒泡排序)

示例:

package main //必须有个main包

import "fmt"
import "math/rand"
import "time"

func InitData(s []int) {
        //设置种子
        rand.Seed(time.Now().UnixNano())

        for i := 0; i < len(s); i++ {
                s[i] = rand.Intn(100) //100以内的随机数
        }
}

//冒泡排序
func BubbleSort(s []int) {
        n := len(s)

        for i := 0; i < n-1; i++ {
                for j := 0; j < n-1-i; j++ {
                        if s[j] > s[j+1] {
                                s[j], s[j+1] = s[j+1], s[j]
                        }
                }
        }
}

func main() {
        n := 10

        //创建一个切片,len为n
        s := make([]int, n)

        InitData(s) //初始化数组
        fmt.Println("排序前: ", s)

        BubbleSort(s) //冒泡排序
        fmt.Println("排序后: ", s)
}

执行结果:

排序前:  [91 20 62 5 47 51 97 54 72 18]
排序后:  [5 18 20 47 51 54 62 72 91 97]