打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
go:内置函数 | 闭包 | 数组 | 切片 | 排序 | map | 锁
内置函数1.close: 主要是用来关闭channel2.len:用来求长度,比如string、array、slice、map、channel3.new与make都是用来分配内存	new用来分配值类型,如int、string,返回的是指针	make用来分配引用类型,如chan、map、slice	new创建的指针指向变量,make进行变量的初始化	4.append用来追加元素到数组、slice中5.panie和recover,用来做错误处理闭包1。一个函数和与其相关的饮用环境组合而成的实体	package main	import "fmt"	func Addr() func(int) int {		var x int		return func(d int) int {			x +=d			return x		}	}	func main() {		f := Addr()		fmt.Println(f(1))		fmt.Println(f(100))		fmt.Println(f(1000))	}数组1.数组:	是同一种数据类型的固定长度的序列2.数组定义	var a [len]int3.长度是数据类型的一部分,因此,var a[5] int和var a[10] int是不同类型4.数据可以通过下标进行访问,下标是从0开始,最后一个元素的下标为len-15.访问越界,如果下标在数组合法范围之外,则触发访问越界,会panic6.数组的初始化	a.var age() [5]int = [5] int{1,2,3,4,5}	b.var age() = [5]int{1,2,3,4,5}	c.var age = [...]int {1,2,3,4,5}	d.var str = [5]string{3:"hello world",4:"tom"}7.多维数组	a.var age [5][3]int	b.var f [2][3]int = [...][3]int{{1,2,3},{4,5,6}}切片1.切片,切片是数组的一个引用,因此切片是引用类型2.切片的长度可以改变,因此,切片是一个可变数组3.切片遍历方式和数组一样,可以用len()求长度4.cap可以求出slice最大的容量,0<=len(slice) <=cap(array),其中arrayshi slice引用的数组5.切片的定义	var 变量名 []类型,比如 var str []string    var arr []int6.切片的初始化:	var slice []int = arr[start:end] 	var slice []int = arr[0:end] 简写为 var slice []int = arr[:]	var slice []int = arr[start:len(arr)]简写为var slice[]int = arr[start:]	var slice []int = arr[0,len(arr)]简写为 var slice[]int = arr[:]7.通过make创建切片	var slice []type = make([]type,len)	slice := make([]type,len)	slice := make([]type,len,cap)8.用append内置函数操作切片	slice = append(slice,10)	var a = []int {1,2,3}	var b = []int {4,5,6}	a = append(a,b...)9.切片拷贝	s1 := []int{1,2,3,4,5}	s2 := make([]int,10)	copy(s2,s1) // copy不会扩容,append会。	s3 := []int{1,2,3}	s3 = append(s3,s2...)	s3 = append(s3,4,5,6)10.字符串改字符	s := "hello world"	s1 := []rune(s) //[]byte(s)	s1[0] = '0'	str := string(s1)	排序1.sort.Ints()对证书进行排序2.sort.String对字符和窜进行排序3.sort.Float64s对浮点型进行排序4.sort.SearchInte(a []int,b int)从数组a中查找b。前提是a有序5.sort.SearchFloats(a []float64,b float64)从数组a中查找b。前提是a有序7.sort.SearchStrings(a []string,b string)从数组a中查找b。前提是a有序map1.key-value的数据结构,又叫字典或关联数组	a.声明		var map1 map[keytype]valuetype		var a map[string]string		var a map[string]int		var a map[int]string		var a map[string]map[string]string		//声明不会分配内存,初始化需要make	锁1.互斥锁	sync.Mutex	var lock sync.Mutex	func test() {		var a map[int]int		a = make(map[int]int)		a[7] = 10		a[5] = 10		a[3] = 10		a[1] = 10		for i :=0;i<3;i++{			go func(b map[int]int){				lock.Lock()				b[8] = rand.Intn(100)				lock.Unlock()			}(a)			lock.Lock()			fmt.Println(a)			lock.Unlock()			time.sleep(time.Second)		} 	}2.读写锁	var mu sync.RWMutex	go build -race 目录 检测代码是否有冲突

  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数组,切片和字典
结构体
map
Golang极简入门教程(一):基本概念
Go语言指针保姆级教程!
Go 语法速览与实践清单(V0.5)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服