人才库踩坑记录

最近一直没更新是因为在开发一个人才库系统,这个项目很简单,本质上就是个只有两张表的增删改查,但是却做了两周,这篇文章就是用来记录这次开发遇到的坑程序设计整个系统使用的技术也比较简单前端:baidu-amis服务端:golang gin sqlx mysql5.7任务是按阶段来给的,这个阶段的功能大致


二叉树的广度遍历

上次讲过了 二叉树的深度遍历,这次来看看广度遍历其实以前在学校里做数据结构的习题时我就喜欢广度遍历(毕竟已经一层一层的分好了,可以直接写答案),更符合人脑的直觉还是和上次一样的数据结构//1//|\//920//|\//715 tree := TreeNode{Val: 1,Left: &T


二叉树的深度遍历

深度优先与广度优先深度优先是对广度优先而言的,可以想象去遍历你的计算机目录有两种遍历方案:刨根问底,把第一个文件夹翻到底,然后再返回上一层,翻下个文件夹把一级目录的文件夹先便利一遍,然后再遍历二级目录……深度优先是第一种,这里不再多说举个例子如果我想遍历树状结构://1//|\//920//|\//


Let's Go 13 — channel的应用

单向Channel可以将channel隐式转换为单向队列,只收或只发。c:=make(chanint,3)varsendchan<-int=c//send-onlyvarrecv<-chanint=c//receive-onlysend<-1//<-send//Error:r


Let's Go 12 — Goroutine 和 Channel

Goroutine也就是Golang的多线程只需在函数调用语句前添加go关键字,就可创建并发执行单元。gofunc(){//yourcode...}开发⼈人员无需了解任何执行细节,调度器会自动将其安排到合适的系统线程上执行。事实上,入口函数main就以goroutine运行。关于调度器的说明调度器不


Let's Go 11 — 接口

接口接口是一个或多个方法签名的集合接口命名习惯以er结尾,结构体。接口只有方法签名,没有实现。接口没有数据字段。可在接口中嵌入其他接口。类型可实现多个接口。接口可用作变量类型,或结构成员。任何类型的方法集中只要拥有与之对应的全部方法(指有相同名称、参数列表(不包括参数名)以及返回值),就表示它&qu


Let's Go 10 — 表达式

表达式根据调用者不同,方法分为两种表现形式:instance.method(args...)---><type>.func(instance,args...)前者称为methodvalue,后者methodexpression。两者都可像普通函数那样赋值和传参


Let's Go 9 — 方法

方法方法就是一种特殊的函数方法总是绑定对象实例,并隐式将实例作为第一实参(receiver)。(简单说就是能像Java那样:"对象.函数",并且对象会隐式的作为该函数的一个参数)方法有以下特性:只能为当前包内命名类型定义方法。参数receiver可任意命名。如方法中未曾使用,可省


Let's Go 8 — 结构体与Map

Struct在前面提到过,struct是值类型,所以支持"=="、"!="相等操作符由于是值类型,复制和传参会复制全部内容。可用"_"定义补位字段,支持指向自身类型的指针成员//声明一个结构体typeNodestruct{//_int补位字


Let's Go 7 — 数组与切片

数组和以往认知的数组有很大不同。数组是值类型,赋值和传参会复制整个数组,而不是指针。数组长度必须是常量,且是类型的组成部分。[2]int和[3]int是不同类型。支持"=="、"!="操作符,因为内存总是被初始化过的。(因为是值类型,所以如果两个数组内元素顺序