Go 語言向函數傳遞數組
如果你想向函數傳遞數組參數,你需要在函數定義時,聲明形參為數組,我們可以通過以下兩種方式來聲明:
方式一
形參設定數組大小:
void myFunction(param [10]int) { . . . }
方式二
形參未設定數組大小:
void myFunction(param []int) { . . . }
實例
讓我們看下以下實例,實例中函數接收整型數組參數,另一個參數指定了數組元素的個數,並返回平均值:
實例
func getAverage(arr []int, size int) float32
{
var i int
var avg, sum float32
for i = 0; i < size; ++i {
sum += arr[i]
}
avg = sum / size
return avg;
}
{
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() {
/* 數組長度為 5 */
var balance = [5]int {1000, 2, 3, 17, 50}
var avg float32
/* 數組作為參數傳遞給函數 */
avg = getAverage( balance, 5 ) ;
/* 輸出返回的平均值 */
fmt.Printf( "平均值為: %f ", avg );
}
func getAverage(arr [5]int, size int) float32 {
var i,sum int
var avg float32
for i = 0; i < size;i++ {
sum += arr[i]
}
avg = float32(sum) / float32(size)
return avg;
}
import "fmt"
func main() {
/* 數組長度為 5 */
var balance = [5]int {1000, 2, 3, 17, 50}
var avg float32
/* 數組作為參數傳遞給函數 */
avg = getAverage( balance, 5 ) ;
/* 輸出返回的平均值 */
fmt.Printf( "平均值為: %f ", avg );
}
func getAverage(arr [5]int, size int) float32 {
var i,sum int
var avg float32
for i = 0; i < size;i++ {
sum += arr[i]
}
avg = float32(sum) / float32(size)
return avg;
}
以上實例執行輸出結果為:
平均值為: 214.399994
以上實例中我們使用的形參並未設定數組大小。
浮點數計算輸出有一定的偏差,你也可以轉整型來設置精度。
實例
package main
import (
"fmt"
)
func main() {
a := 1.69
b := 1.7
c := a * b // 結果應該是2.873
fmt.Println(c) // 輸出的是2.8729999999999998
}
import (
"fmt"
)
func main() {
a := 1.69
b := 1.7
c := a * b // 結果應該是2.873
fmt.Println(c) // 輸出的是2.8729999999999998
}
設置固定精度:
實例
package main
import (
"fmt"
)
func main() {
a := 1690 // 表示1.69
b := 1700 // 表示1.70
c := a * b // 結果應該是2873000表示 2.873
fmt.Println(c) // 內部編碼
fmt.Println(float64(c) / 1000000) // 顯示
}
import (
"fmt"
)
func main() {
a := 1690 // 表示1.69
b := 1700 // 表示1.70
c := a * b // 結果應該是2873000表示 2.873
fmt.Println(c) // 內部編碼
fmt.Println(float64(c) / 1000000) // 顯示
}