内置函数
1.close: 主要是用来关闭channel
2.len:用来求长度,比如string、array、slice、map、channel
3.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]int
3.长度是数据类型的一部分,因此,var a[5] int和var a[10] int是不同类型
4.数据可以通过下标进行访问,下标是从0开始,最后一个元素的下标为len-1
5.访问越界,如果下标在数组合法范围之外,则触发访问越界,会panic
6.数组的初始化
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 []int
6.切片的初始化:
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有序 map
1.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 目录 检测代码是否有冲突

  

go:内置函数 | 闭包 | 数组 | 切片 | 排序 | map | 锁的更多相关文章

  1. Python函数05/内置函数/闭包

    Python函数05/内置函数/闭包 目录 Python函数05/内置函数/闭包 内容大纲 1.内置函数(二) 2.匿名函数及内置函数(重要) 3.闭包 4.今日总结 5.今日练习 内容大纲 1.内置 ...

  2. awk(流程控制、内置变量、内置函数、数组)

    摘自:http://bbs.51cto.com/thread-883948-1-1.html awk(流程控制.内置变量.内置函数.数组) ... 参考其他的资料,给大家看看.一.awk流程控制语句 ...

  3. 12.Python略有小成(生成器,推导式,内置函数,闭包)

    Python(生成器,推导式,内置函数,闭包) 一.生成器初始 生成器的本质就是迭代器,python社区中认为生成器与迭代器是一种 生成器与迭代器的唯一区别,生成器是我们自己用python代码构建成的 ...

  4. Python 内置函数 -- zip(), sorted(), filter()和map()

    内置函数1. zip() 打包(木桶效应)描述: zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个个元组, 然后返回由这些元组组成的列表语法: zip([iterable, ...

  5. python内置函数lambda、filter、map、reduce

    lambda匿名函数 1.lambda只是一个表达式,函数体比def简单多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去 3.lambda函数 ...

  6. 内置函数系列之 sorted排序

    sorted排序函数语法: sorted(可迭代对象,key=函数(默认为None),reverse=False) 将可 迭代对象的每一个元素传进key后面的函数中,根据函数运算的结果(返回值)进行排 ...

  7. Python 内置函数、作用域、闭包、递归

    一.内置函数如何使用 help()一下: 如想看min()咋用?在shell中:help(min) 二.部分内置函数 (一).排序:sorted() li = [(1, 2, 3, 4), (7, 8 ...

  8. 4 python内置函数

    1.内置函数的整体介绍 内置参数官方详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii 2.各内置函数介 ...

  9. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

随机推荐

  1. mysql-5.7.25解压版本安装和navicat 12.1版本破解-4.8破解工具

    1.配置环境变量 百度网盘下载https://pan.baidu.com/s/1tbOJiOG9l87HbIzsLApX4A 提取码  t657  (mysql-5.7.25大小300M解压后1.6G ...

  2. centos上安装python环境

    1.安装python-pip ​ 首先安装epel扩展源: ​ yum -y install epel-release ​ 更新完成之后,安装pip: ​ yum -y install python- ...

  3. Ubuntu18.04制作本地源

    Ubuntu 18.04 制作本地源 1. 在可联网的Ubuntu18.04上制作源 创建目录 mkdir /opt/debs 最好在目标电脑上创建相同的目录,以免 apt-get install 时 ...

  4. 以后的IT路还很长(1)

    以后的IT路还很长(1) 最近有两位兄弟同事离职了,蛮可惜了,在一个战壕一起一.两年了,人各有志嘛!希望他们发展更好些! 目前的公司是个创业型的公司,公司从08年的50来个人,扩张到今年11年400多 ...

  5. 树的三种DFS策略(前序、中序、后序)遍历

    之前刷leetcode的时候,知道求排列组合都需要深度优先搜索(DFS), 那么前序.中序.后序遍历是什么鬼,一直傻傻的分不清楚.直到后来才知道,原来它们只是DFS的三种不同策略. N = Node( ...

  6. 【NOIP14 D2T2】寻找道路

    Source and Judge NOIP2014 提高组 D2T2Luogu2296Caioj1567 Problem [Description] 在有向图 G 中,每条边的长度均为 1,现给定起点 ...

  7. css雪碧图压缩

    cssgaga下载地址 链接: https://pan.baidu.com/s/1Q9xH_XzumIc7vTLCZ3tr5A 提取码: stqe CssGaga功能特性 合并import的CSS文件 ...

  8. Javascript学习笔记-基本概念-语法、关键字和保留字、变量

    语法 1.区分大小写 2.标识符 所谓标识符,就是指变量.函数.属性的名字,或者函数的参数. 命名规则: 第一个字符必须是一个字母.下划线(_)或一个美元符号($): 其他字符可以是字母.下划线.美元 ...

  9. 用ABAP 生成二维码 QR Code

    除了使用我的这篇blogStep by step to create QRCode in ABAP Webdynpro提到的使用ABAP webdynpro生成二维码之外,也可以通过使用二维码在线生成 ...

  10. php实现post跳转

    大家否知道php可以利用header('Location')实现get请求跳转. php利用curl可以实现模拟post请求. 但是却找不到php现成的实现post跳转.那么问题来了,如果有这个需求该 ...