golang数组的简单使用及一些细节

package main

import "fmt"

func main() {

	//现在有六只鸡,统计他们的总体重并求出平均体重
	//弊端,假如很多鸡则需定义很多变量
	hen1 := 3.0
	hen2 := 5.0
	hen3 := 1.0
	hen4 := 3.4
	hen5 := 2.0
	hen6 := 50.0

	totalWeight := hen1 + hen2 + hen3 + hen4 + hen5 + hen6
	fmt.Println("总重量为 ", totalWeight)
	//将totalWeight/6四舍五入保留到小数点后两位返回给avgWeight
	avgWeight := fmt.Sprintf("%.2f", totalWeight/6)
	fmt.Println("平均重量为 ", avgWeight)

	//定义一个数组
	var hens [6]float64
	//赋值
	hens[0] = 3.0
	hens[1] = 5.0
	hens[2] = 1.0
	hens[3] = 3.4
	hens[4] = 2.0
	hens[5] = 50.0
	//遍历求总体重
	totalWeight2 := 0.0
	for i := 0; i < len(hens); i++ {
		totalWeight2 = totalWeight2 + hens[i]
	}
	avgWeight2 := fmt.Sprintf("%.2f", totalWeight2/float64(len(hens)))
	fmt.Println("平均体重为 ", avgWeight2)
	fmt.Println("总体重为 ", totalWeight2)

	var intArr [3]int //int占8个字节
	//当定义完数组后,数组各个元素的默认值为0
	fmt.Println(intArr)
	//数组首地址和第一个元素首地址一样,后面每个元素地址为上个元素地址+数组类型所占用字节数
	fmt.Printf("intArr的地址为%p, intArr[0]的地址为%p, intArr[1]的地址为%p, intArr[1]的地址为%p\n",
		&intArr, &intArr[0], &intArr[1], &intArr[2])

	//数组初始化的四种方式
	var numsArray01 [3]int = [3]int{1, 2, 3}
	var numsArray02 = [3]int{4, 5, 6}
	var numsArray03 = [...]int{7, 8, 9}
	var names = [3]string{1: "tom", 0: "jack", 2: "marry"} //可以指定元素下标

	fmt.Println(numsArray01)
	fmt.Println(numsArray02)
	fmt.Println(numsArray03)
	fmt.Println(names)
}

  

posted @ 2022-02-26 10:36  Star_Gazer  阅读(30)  评论(0编辑  收藏  举报