Navigation
阅读进度0%
Go 数组基础:使用、多维数组与函数传递
June 17, 2025 (7mo ago)
Go
Array
Function
章节概述如下
本章节主要讲的内容是关于数组的 ,其主要内容如下
- 基础的使用
- 多维数组的使用
- 给函数传递 数组的问题
- 关于进度的问题
基础的使用
// simple use
func useArray() {
// 1. 定义 var variable_name [SIZE] variable_type 一维数组的定义方式
// 顶一个一个非常简单的数组
var balance= [5]int{1,2,3,4,5}
var balance2 = [...]int{1,2,3,4,5} // 自动的给你计算出其数组的长度
var arr1 := [3]int // 初始化一个空的[0,0,0] // 默认值旧是0
fmt.Printf("balance ===> %d\n", balance)
fmt.Printf("balance2 ===> %d\n", balance2)
var tesetArray [10]int
var i ,j int
// 2 赋值
for i = 0; i<10; i++ {
tesetArray[i]=i
}
// 3. 访问
for j = 0 ;j<10; j++ {
fmt.Printf("Element[%d] = %d\n", j, tesetArray[j] )
}
// 4. 遍历方式
for idx, e := range balance {
fmt.Println(idx,e)
}
// 5 数组的截取 标准语法 array[开始的索引,结束的索引(不包含)]
balance[1:2] // 2
balance[1:3] // 2 3
balance[1:] // 一直到末尾
balance[:3] // 从开始到索引位置为3的地方
}多维数组的使用
// 多维数组的问题
func duowei() {
// var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type 这个就是语法的形式
// golang中使用类似表格的结构来保存数据 会比较好理解
/* 数组 - 5 行 2 列 以下就是一个二维数组*/
var a = [5][2]int{ {0,0}, {1,2}, {2,4}, {3,6},{4,8}}
var i, j int
/* 输出数组元素 */
for i = 0; i < 5; i++ {
for j = 0; j < 2; j++ {
fmt.Printf("a[%d][%d] = %d\n", i,j, a[i][j] )
}
}
}给函数传递 数组的问题
// 给函数传递数组的问题
// 如果你想向函数传递数组参数,你需要在函数定义时,声明形参为数组,我们可以通过以下两种方式来声明
func functionArray() {
// 如果函数要接受数组有两种方式来做
// 在函数的形参中定义array的大小 还有一种是不定大小的
/*
void myFunction(param [10]int)
void myFunction(param []int)
*/
/* 数组长度为 5 */
var balance = [5]int {1000, 2, 3, 17, 50}
var avg float32
/* 数组作为参数传递给函数 */
avg = getAverage( balance, 5 )
/* 输出返回的平均值 */
fmt.Printf( "平均值为: %f ", avg )
}
// 以下的实例 就是在基计算平均值
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
}关于精度的问题
// 有关于精度的问题 说白go了旧放大然后除法一下
func jindu() {
a := 1690 // 表示1.69
b := 1700 // 表示1.70
c := a * b // 结果应该是2873000表示 2.873
fmt.Println(c) // 内部编码
fmt.Println(float64(c) / 1000000) // 显示
}