如何在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的for迴圈。
**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的資訊,您可以瀏覽這些教程。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP