数组的类型
package main
import "fmt"
func main() {
/*
数据类型:
基本类型:整数,浮点,布尔,字符串
复合类型:array,slice,map,struct,pointer,function,channel...
数组的数据类型:
[size]type
值类型:理解为存储的数值本身
将数据传递给其他的变量,传递的是数据的备份(副本)
int,float,string,bool,array
引用类型:理解为存储数据的内存地址
slice,map
*/
//1.数据类型
num := 10
fmt.Printf("%T\n",num)
arr1 :=[4]int{1,2,3,4}
arr2 :=[3]float64{2.15,3.14,6.58}
arr3 :=[4]int{5,6,7,8}
arr4 :=[2]string{"hello","world"}
fmt.Printf("%T\n",arr1)//[4]int
fmt.Printf("%T\n",arr2)//[3]float64
fmt.Printf("%T\n",arr3)//[4]int
fmt.Printf("%T\n",arr4)//[2]string
//2.赋值
num2 := num //值传递
fmt.Println(num,num2) //10 10
num2 = 20
fmt.Println(num,num2) //10 20
//数组
arr5 := arr1 //值传递
fmt.Println(arr1)
fmt.Println(arr5)
arr5[0] = 100
fmt.Println(arr1)
fmt.Println(arr5)
a := 3
b := 4
fmt.Println(a == b) //比较a和b的数值是否相等
fmt.Println(arr5 == arr1) //比较数字的对应下标位置的数值是否相等
//fmt.Println(arr1 == arr2) // invalid operation: arr1 == arr2 (mismatched types [4]int and [3]float64)
}
运行输出:
int
[4]int
[3]float64
[4]int
[2]string
10 10
10 20
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[100 2 3 4]
false
false
Process finished with exit code 0
数组排序
package main
import "fmt"
func main() {
/*
数组的排序:
让数组中的元素具有一定的顺序
arr :=[5]int{15,23,8,10,7}
升序:[7,8,10,15,23]
降序:[23,15,10,8,7]
排序算法:
冒泡排序,插入排序,选择排序,希尔排序,堆排序,快速排序。。。。。
冒泡排序:(Bubble Sort)
依次比较两个相邻的元素,如果他们的顺序(例:从小到大)就把他们交换过来
*/
arr :=[5]int{15,23,8,10,7}
////第一轮排序
//for j :=0;j<4;j++{
// if arr[j] > arr[j+1]{
// arr[j],arr[j+1] = arr[j+1],arr[j]
// }
//}
//fmt.Println(arr)
//
////第二轮排序
//for j :=0;j<3;j++{
// if arr[j] > arr[j+1]{
// arr[j],arr[j+1] = arr[j+1],arr[j]
// }
//}
//fmt.Println(arr)
fmt.Println("........")
//总结
for i :=1;i < len(arr);i++{
for j :=0;j<len(arr)-i;j++{
if arr[j] > arr[j+1]{
arr[j],arr[j+1] = arr[j+1],arr[j]
}
}
fmt.Println(arr)
}
}
运行输出:
........
[15 8 10 7 23]
[8 10 7 15 23]
[8 7 10 15 23]
[7 8 10 15 23]
Process finished with exit code 0
读完点个赞,给我的坚持更新注入新的活力。
2022.05.12日更68/365 天
公众号:3天时间
往期同类文章:
GO学习 Array
GO学习 goto语句和随机函数
GO学习 for循环练习
GO学习 多重for循环
GO学习 for循环