golang数组

golang数组

定义数组

var n [10]int /* n 是一个长度为 10 的数组 */

快速初始化

package main

import "fmt"

func main() {
   var i,j,k int
   // 声明数组的同时快速初始化数组
   balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

   /* 输出数组元素 */
   for i = 0; i < 5; i++ {
      fmt.Printf("balance[%d] = %f\n", i, balance[i] )
   }
   //这里有三个点...↓
   balance2 := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
   /* 输出每个数组元素的值 */
   for j = 0; j < 5; j++ {
      fmt.Printf("balance2[%d] = %f\n", j, balance2[j] )
   }

   //  将索引为 1 和 3 的元素初始化
   balance3 := [5]float32{1:2.0,3:7.0}
   for k = 0; k < 5; k++ {
      fmt.Printf("balance3[%d] = %f\n", k, balance3[k] )
   }
}

二维数组

1、简单创建

func main() {
   // Step 1: 创建数组
   values := [][]int{}

   // Step 2: 使用 appped() 函数向空的二维数组添加两行一维数组
   row1 := []int{1, 2, 3}
   row2 := []int{4, 5, 6}
   values = append(values, row1)
   values = append(values, row2)

   // Step 3: 显示两行数据
   fmt.Println("Row 1")
   fmt.Println(values[0])
   fmt.Println("Row 2")
   fmt.Println(values[1])

   // Step 4: 访问第一个元素
   fmt.Println("第一个元素为:")
   fmt.Println(values[0][0])
}

2、暴力创建

package main

import "fmt"

func main() {
   a := [3][4]int{
      {0, 1, 2, 3},
      {4, 5, 6, 7},
      {8, 9, 10, 11},       // 必须要有逗号,因为最后一行的 } 不能单独一行
   }
   fmt.Println(a)
   fmt.Println("===================================================")

   b := [3][4]int{
      {0, 1, 2, 3} ,
      {4, 5, 6, 7} ,
      {8, 9, 10, 11}}
   fmt.Println(b)
}

3、添加元素

package main

import "fmt"

func main() {
   // 创建二维数组
   sites := [2][2]string{}

   // 向二维数组添加元素
   sites[0][0] = "Google"
   sites[0][1] = "Runoob"
   sites[1][0] = "Taobao"
   sites[1][1] = "Weibo"

   // 显示结果
   fmt.Println(sites)
}

4、循环嵌套输出元素

package main

import "fmt"

func main() {
   /* 数组 - 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] )
      }
   }
}

5、各数组长度不同

package main

import "fmt"

func main() {
   // 创建空的二维数组
   animals := [][]string{}

   // 创建三一维数组,各数组长度不同
   row1 := []string{"qwe","asd","zxc"}
   row2 := []string{"rty"}
   row3 := []string{"fgh","vbn"}

   // 使用 append() 函数将一维数组添加到二维数组中
   animals = append(animals,row1)
   animals = append(animals,row2)
   animals = append(animals,row3)

   // 循环输出
   for i := range animals{
      fmt.Printf("Row: %v\n", i)
      fmt.Println(animals[i])
   }

}

带数组函数

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
}

你可能感兴趣的:(golang学习,golang,开发语言,后端)