go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:向函数传递数组
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:向函数传递数组相关的知识,希望对你有一定的参考价值。
如果要向函数传递数组参数,你需要在函数定义时,声明形参为数组。有以下两种方式:
- 形参设定数组长度
func MyFunction(param [10]int) {
...
}
示例
func TestMainSet(t *testing.T) {
var array = []int{1, 2, 3, 4, 5}
setArray(array) // 未定义长度的数组,只能传给不限制数组长度的函数
var array2 = [5]int{1, 2, 3, 4, 5} // 定义了长度的数组,只能传给限制了相同数组长度的函数
setArray2(array2)
}
func setArray2(params [5]int) {
fmt.Printf("params array length of setArray2 is : %d", len(params))
}
- 形参未设定数组长度
func MyFunction(param []int) {
...
}
GetAverage函数接收整型数组参数,另一个参数size指定了数组元素的个数
package array_test
import (
"testing"
)
func TestFuncArray(t *testing.T) {
var balance = []int{1000, 2, 3, 17, 50} //切片长度为5
var avg float32
// 切片作为参数,传递给函数
avg = getAverage(balance, 5)
// 格式化输出返回的平均值
t.Logf("平均值为: %f ", avg) //
}
func GetAverage(arr []int, size int) float32 { // 输出是float32类型
var i, sum int
var avg float32
for i = 0; i < size; i++ {
sum += arr[i]
}
avg = float32(sum) / float32(size) // 显式类型转换
return avg // 返回变量
}
二维数组传参
package array_test
import (
"fmt"
"testing"
)
func prt(arr [][]float32, size int) {
for i := 0; i < size; i++ {
fmt.Println(arr[i][0])
}
}
func TestMain(t *testing.T) {
var arr = [][]float32{{-1, -2}, {-3, -4}, {-5}}
prt(arr, 3)
}
以上是关于go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:向函数传递数组的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:一维数组
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 切片:切片内部结构
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:向函数传递数组
go语言学习笔记 — 基础 — 高级数据类型 — 派生类型:指针(pointer)数据容器函数(func)结构体(struct)通道(channel)