Golang 如何将数组返回给函数

Golang 如何将数组返回给函数

在编程中,为了使代码更模块化、可用和可读性更好,我们将代码分解成不同的函数。例如,我们需要在不同的地方交换两个数字,所以我们创建一个不同的函数,并在各个地方调用它,而不是直接在原地交换。在某些用例中,我们需要一个函数一次返回多个值。为此,编程中有一种叫做数组的数据结构,它是同一类型多个值的集合。在本教程中,我们将学习如何将数组作为参数在函数中返回。

示例

在这个示例中,我们将传递一个整数类型的数组给函数,然后对数组进行排序,最后返回排序后的数组。为了对数组进行排序,我们将使用选择排序算法。

步骤

  • 步骤1: var array [5]int − 声明一个大小为5的变量,类型为int。

  • 步骤2: array[0] = 45, array[1] = 9, array[2] = 99, array[3] = 900, array[4] = 801 − 初始化数组的所有索引。

  • 步骤3: array = sortTheArray(array) − 通过使用选择排序对数组进行排序。首先,我们调用函数并传递上面初始化的数组,然后对数组进行排序。

    • for i := 0; i < len(array)−1; i++ { } − 运行一个循环,从0到数组的长度-1。

    • min_index := i − 在每次迭代中创建一个变量,用于存储剩余元素中最小数的索引。

    • for j := i + 1; j < len(array); j++ { } − 运行一个内部循环,从i + 1到数组的最后一个索引。

    • if array[j] < array[min_index] { min_index = j } − 添加一个if语句,以找到剩余元素中的最小元素,并将其索引存储在min_index中。

    • if i != min_index { swap( &array[i], &array[min_index]) } − 如果内部循环中min_index的值发生变化,我们进行交换。

  • 步骤 4: 打印排序后的数组。

示例

package main

import (
    // fmt package provides the function to print anything
    "fmt"
)

func swap(number1, number2 *int) {
    // swapping both numbers using the third number
    number3 := *number1
    *number1 = *number2
    *number2 = number3
}

// array is the argument in this function
func sortTheArray(array [5]int) [5]int {
    fmt.Println("Sorting the array using the Selection sort algorithm.")

    // running a for loop from 0 to 1 less than the array length
    for i := 0; i < len(array)-1; i++ {
        // declaring and initializing the variable that will store the index
        // of minimum element in the remaining element
        min_index := i

        // running an inner loop on the elements after ith index
        for j := i + 1; j < len(array); j++ {
            // comparing the element with the element at min_index
            if array[j] < array[min_index] {
                min_index = j
            }

        }

        // swapping the elements if i and min_index does not matches
        if i != min_index {
            swap(&array[i], &array[min_index])
        }
    }

    return array
}

func main() {
    // declaring the array of type string with size 5
    var array [5]int

    // initializing all the index of array
    array[0] = 45
    array[1] = 9
    array[2] = 99
    array[3] = 900
    array[4] = 801

    fmt.Println("Golang program to return an array in the function.")
    fmt.Println("Array elements before sorting.")

    for i := 0; i < len(array); i++ {
        fmt.Printf("%d ", array[i])
    }
    fmt.Println()

    // passing argument in the function and storing the returned
    // sorted array in the array variable
    array = sortTheArray(array)

    fmt.Println("Array elements after sorting.")
    for i := 0; i < len(array); i++ {
        fmt.Printf("%d ", array[i])
    }
    fmt.Println()
}

输出

Golang program to return an array in the function.
Array elements before sorting.
45 9 99 900 801 
Sorting the array using the Selection sort algorithm.
Array elements after sorting.
9 45 99 801 900

结论

这是在Golang中从函数返回数组的示例,我们已经将int类型的数组传递给一个函数,然后使用选择排序对数组进行排序。排序完数组后,我们最后返回了数组。要了解更多关于Go的信息,您可以探索这些 教程 。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程