package main
import"fmt"funcmain(){f1()f2()f3()f4()f5()}type animal interface{run()}type dog struct{}func(d *dog)run(){
fmt.Println("狗在跑")}// 指针、map、切片为返回值的会发生内存逃逸funcf1()(*int,map[int]int,[]int){
i :=1
list :=[]int{1,2,3}
m :=map[int]int{1:1,2:2,3:3}return&i, m, list
}// 向chan中发送指针的数据时,会发生逃逸funcf2(){
i :=2
ch :=make(chan*int,2)
ch <-&i
<-ch
}// 闭包引用外部变量时,会发生逃逸funcf3()func(){
i :=3returnfunc(){
fmt.Println(i)}}// 在map、切片中包含指针的值时,会发生逃逸funcf4(){
i :=1
list :=make([]*int,2)
list[0]=&i
}// interface类型多态的应用,可能会导致逃逸// 由于接口类型可以持有任意实现了该接口的类型,编译器在编译时无法确定具体的动态类型// 因此,为了保证程序的正确性,在运行时需要将接口对象分配到堆上funcf5(){var a animal =&dog{}
a.run()var b animal
b =&dog{}
b.run()}
我们已经讲过了okhttp和登录系统的使用,我们今天做一个完整的登录系统,后端用springmybatis去做
数据库内容
-- 创建学生信息表
CREATE TABLE student_info (id SERIAL PRIMARY KEY, -- 添加自增主键name VARCHAR(255) NOT NULL,number INT NOT NULL,…
目录
What is an “Algebra”
What is Relational Algebra?
Core Relational Algebra
Selection
Projection
Extended Projection
Product(笛卡尔积)
Theta-Join
Natural Join
Renaming
Building Complex Expressions
Sequences of Assignm…