go 协程,chanel

go协程 go 使用协程很简单,直接前边加关键字go即可 什么是channel channel是有类型的管道,可以用channel操作符 <- 对其发送或者接收值。 创建channel c := make(chan int) 注意:管道必须指定类型,比如这里是int,即往管道里传送的数据只能是int类型。当然可以是interfac

阅读全文

同步,异步

什么是同步与异步 同步、异步是一对,关注的是消息通知机制,一次完成是同步,两次完成是异步 同步: 打电话(一次性把事情说完) 异步: 发短信说事,等待回复(收到回复才算是把事情说完,这里是两次) 同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。 阻塞、非阻塞

阅读全文

java lamdba表达式详解

Function接口详解 compose: 先应用beforefunction,再应用实例的function 实际上:将两个function组合在一起了。先执行before方法,然后将处理的结果传递给当前对象的apply方法。实现了两个function的串联。既然实现了两个functi

阅读全文

go 反射教程

什么是反射 反射用于检查自身的结构,属于元程序编程 每个语言的反射机制都是不同的,有的语言没有反射 go语言的反射机制建立在类型系统之上 反射获取基本类型 reflect.TypeOf,获取变量的类型,返回reflect.Type类型 reflect.ValueOf,获取变量的值,返回ref

阅读全文

go interface教程

什么是接口 接口可以理解为规范,就是制定了你需要怎么去做,而他自己什么都不做的一个东西 接口格式 type 接口名称 interface{ ​ 定义的主体 } type Person interface { Say() Sport() } type People struct { name string } func (p People) Say() { fmt.Println("这个人说话了") } func (p People) Sport() { fmt.Printf("%s 移动了", p.name) } func main() { var person Person peo := People{ name: &q

阅读全文

go struct教程

什么是struct ​ 当我们在使用系统内在类型无法表示的时候,我们需要自己生命一些属性,单这些属性又是同归于一个实物的时候,我们叫做Struct(结构体)。 结构体的格式 type 结构体名 struct { ​ 字段名:字段类型 ​ 字段名:字段类型 ​ …….. } 实例: type shop struct{ shopname string shopaddr string shoptel string } 结构体实例化 var 结构体实例名称 结构

阅读全文

go func教程

什么是函数 一段可以被别人重复 使用的代码块就是函数。 函数的格式 func 函数名 (参数)(返回值){ ​ ……………. } 备注:函数名命名规则参考变量 func sum(a int, b int) (c int) { return a + b } 函数的使用 var fff int = 100 var c int = 1001 func main() { var a int = 2 var b int = 5 // 函数有返回值是可以不接受的 sum(a, b) d := sum(a, b) fmt.Println(d) // 当然更可以忽略特定 _, _, r := add(a, b) fmt.Println(r)

阅读全文

go map教程

什么是Map Map 是一种无序的基于k/v的数据结构,go语言的map是引用类型,这个是区别于数组的,还记得上个文章我说的array是值类型吗?忘了从头看去! map定义 map[k类型]v类型 备注:map因为是引用类型,那么必须初始才能使用,否则他是一个nil,我们是是用make来初始。

阅读全文

go语言之切片(slice)教程

什么是切片 ​ 我们前边讲解了数组,是不是发现每次都需要声明固定的长度,这某些场合可能就不太适合使用了,在这个时候go语言开发者们也想到了,于是乎提供了一个可变的数组(即切片)。 切片格式 var 变量名 []类型 func main() { var age []int = []int{1, 2, 3, 4, 5, 6} fmt.Println(age) name := []string{"张三", &

阅读全文

go 数组教程

数组 什么是数组,数组就是同一种元素在一起的集合,集合看成猪圈就可以了,就是一群煮在一个猪圈,这就是数组!(有点狭义,但是理解容易) 数组的定义 var 数组变量名称 [数组里装的个数]数组类型 func main() { var age [7]int = [7]int{1, 2, 3, 4, 5, 6, 7} fmt.Println(age) var num = [7]int{1, 2, 3, 4, 5, 6, 7} fmt.Println(num) var year [7]int year = [7]int{1, 2, 3, 4, 5, 6, 7} fmt.Println(year) var moon [2]string = [2]string{"haha", "dudu"} fmt.Println(moon) var day = [...]int{1,

阅读全文