2021.04.16 Go语言学习

本文详细介绍了Go语言中的切片概念及其操作方法,包括使用make函数创建切片、判断切片是否为空、切片的遍历及使用append方法添加元素等。此外,还深入探讨了map的使用方法,例如初始化、读写操作、遍历及删除键值对等。
摘要由CSDN通过智能技术生成

2021.04.16 Go语言学习

切片,make和new

切片

切片很好理解,就是相当于把一个相同类型的袁旭弄成可变长度的序列。内部结构包括地址,长度,容量。

var name []T
  • name:表示变量名
  • T:表示切片中的元素类型

make()函数构造切片

make的作用:创建一个动态切片。

make ([]T,size,cap)
  • T:切片的元素类型
  • size:切片中元素的数量
  • cap:切片的容量
func main() {
	a := make([]int, 2, 10)
	fmt.Println(a)      //[0 0]
	fmt.Println(len(a)) //2
	fmt.Println(cap(a)) //10
}
// a动态分类了一个元素数量为2,容量为10的切片。 
//代码中a的内部存储空间分配了10,但是只用了2.
//容量并不会影响当前元素的个数,所以len(a)返回2,cap(a)则返回该切片的容量。

判断切片是否为空

要检查切片是否为空,请始终使用len(s) == 0来判断,而不应该使用s == nil来判断。

切片不能直接比较

  • 切片时不能比较的。所以不能使用"=="操作来判断两个切片是否有相同元素
  • 切片唯一比较的方法就是和nil比较。

切片遍历

for range就完事了

func main() {
	s := []int{1, 3, 5}

	for i := 0; i < len(s); i++ {
		fmt.Println(i, s[i])
	}

	for index, value := range s {
		fmt.Println(index, value)
	}
}

append()方法

append函数就是给切片动态添加元素。

一次添加一个或者多个。

func main(){
	var s []int
	s = append(s, 1)        // [1]
	s = append(s, 2, 3, 4)  // [1 2 3 4]
	s2 := []int{5, 6, 7}  
	s = append(s, s2...)    // [1 2 3 4 5 6 7]
}

笔记

package main

import "fmt"

func main() {

   //map函数使用

   var m1 map[string]int   // var+关键字+map+[key的类型]+定义的类型

   //map一定要初始化后才可以使用

   fmt.Println(m1)

   m1 = make(map[string]int,10)//要预估好map的容量,避免在程序运行期间再动态扩容


   m1["年龄"] = 20
   m1["ID"] = 11231415125

   fmt.Println(m1)
   fmt.Println(m1["ID"])

   value, ok := m1["aaa"]

   if !ok {
      fmt.Println("chawuci")
   }else {
      fmt.Println("value",value)
   }


   //map遍历

   for i, v := range m1 {

      fmt.Println(i,v)
   }

   //只遍历key
   for k := range m1 {
      fmt.Println(k)
   }

   //只遍历value
   for i := range m1 {
      fmt.Println(i)

   }

   //删除

   delete(m1,"年龄")
   fmt.Println(m1)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值