- Go 教程
- Go - 主頁
- Go - 概述
- Go - 環境設定
- Go - 程式結構
- Go - 基本語法
- Go - 資料型別
- Go - 變數
- Go - 常量
- Go - 運算子
- Go - 決策
- Go - 迴圈
- Go - 函式
- Go - 作用域規則
- Go - 字串
- Go - 陣列
- Go - 指標
- Go - 結構
- Go - 切片
- Go - 範圍
- Go - 對映
- Go - 遞迴
- Go - 型別轉換
- Go - 介面
- Go - 錯誤處理
- Go 有用資源
- Go - 問題和答案
- Go - 速查指南
- Go - 有用資源
- Go - 討論
Go - 向函式傳遞陣列
如果你想在函式中傳遞單維度陣列作為引數,那麼你必須以以下兩種方法之一宣告函式形式引數,這兩種宣告方法產生類似的結果,因為這兩種方法都告訴編譯器,它將接收一個整數陣列。同樣的方法你可以將多維度陣列作為形式引數傳遞。
方式 1
將形式引數宣告為如下所示的有大小的陣列 -
void myFunction(param [10]int)
{
.
.
.
}
方式 2
將形式引數宣告為如下所示的無大小的陣列 -
void myFunction(param []int)
{
.
.
.
}
示例
現在,考慮以下函式,它將採用一個數組作為引數以及另一個引數,並根據傳遞的引數,它將返回透過陣列傳遞的數字的平均值,如下所示 -
func getAverage(arr []int, int size) float32 {
var i int
var avg, sum float32
for i = 0; i < size; ++i {
sum += arr[i]
}
avg = sum / size
return avg;
}
現在,讓我們按如下所示呼叫上述函式 -
package main
import "fmt"
func main() {
/* an int array with 5 elements */
var balance = []int {1000, 2, 3, 17, 50}
var avg float32
/* pass array as an argument */
avg = getAverage( balance, 5 ) ;
/* output the returned value */
fmt.Printf( "Average value is: %f ", avg );
}
func getAverage(arr []int, size int) float32 {
var i,sum int
var avg float32
for i = 0; i < size;i++ {
sum += arr[i]
}
avg = float32(sum / size)
return avg;
}
當上述程式碼編譯在一起並執行時,它會產生以下結果 -
Average value is: 214.400000
正如你所看到的,陣列的長度與函式無關,因為 Go 不會對形式引數進行邊界檢查。
go_arrays.htm
廣告