golang
Lich Howger
这个作者很懒,什么都没留下…
展开
-
311-golang排序算法
主要的排序算法有:1.冒泡2.选择3.插入4.快速排序5.希尔排序6.堆排序7.归并排序8.计数排序等等1.先来看下冒泡排序 arr := []int{3, 5, 4, 1, 2} for i := 0; i < len(arr)-1; i++ { for j := 0; j < len(arr)-1-i; j++ { if a...原创 2019-03-13 14:59:35 · 188 阅读 · 0 评论 -
192-go类型断言
go类型断言在java中有一个instanceof方法用来判断一个对象是否为 某类型比如String str="abc"boolean ok = str.instanceof(String.class)Integer i = 123boolean ok = i.instanceof(String.class)这个时候如果str是String,则返回true...原创 2019-01-02 20:27:30 · 202 阅读 · 0 评论 -
190-beego删除类型修改属性
beego删除类型修改属性增加一个删除类型的功能<a href="/deleteType">删除</a>点击删除,要删除类型那么要加上typeId<a href="/deleteType?typeId={{.Id}}" >func (this *ArticleController) DeleteType(){//获取数...原创 2019-01-02 19:38:49 · 326 阅读 · 0 评论 -
189-session操作和m2m操作
Cookie 和 session作用:一定时间内保存用户数据存储位置不同Cookie存储位置在客户端session存储位置在服务器第二个不同生命周期不同Cookie能够设置生存时间当设置的时间一到的时候,就失效了session是当浏览器关闭的时候session就失效了第三个不同适用场景不同Cookie 一般安全性要求不高的数据session 安...原创 2019-01-02 14:51:08 · 144 阅读 · 0 评论 -
211-beego信息与地址
beego信息与地址func (this *GoodsController) ShowIndex(){ this.TplName="index.html"}我们可以从session中获取用户名username := this.GetSession("username")user := getUser(username.(string))然后我们获取一下地址信息...原创 2019-01-06 16:48:03 · 268 阅读 · 1 评论 -
210-beego登录退出与过滤器
beego登录退出与过滤器4个步骤1.获取2.校验3.处理4.返回func (this *UserController) HandleLogin(){//获取数据username := this.GetString("username")password := this.GetString("pwd")//校验数据if username =="" ||pa...原创 2019-01-06 15:57:27 · 1650 阅读 · 7 评论 -
209-beego邮件校验激活
beego邮件校验激活注册过程中把用户的信息都存储到数据库中之后需要给用户发一封邮件然后告诉用户去邮箱里面激活这样做的好处是可以判断用户在注册的时候输入的邮箱是否正确然后以后如果要推出什么新产品就可以给用户发送邮件这个过程是这样的beego服务器--->STMP服务器--->目的邮箱STMP服务器就是邮件代发服务器一般由邮件服务...原创 2019-01-06 15:48:17 · 843 阅读 · 8 评论 -
208-beego用户注册校验
beego用户注册校验页面说明1.index2.list3.detail4.cart5.place_order6.login7.register8.user_center_info9.user_center_order10.user_center_site先来看一下js在该注册页面中,包含了用户注册时需要填写的信息,例如:用户名,密码,密码确认,...原创 2019-01-06 15:10:14 · 557 阅读 · 1 评论 -
219-json文件导入mysql
json文件导入mysql一个头疼的问题解决了很久我现在有一个data.json里面有很多的数据,这个data.json是utf8的导入数据库后也是显示正常的但是读取出来返回到客户端就乱码了其实我觉得可能是我客户端的问题但是我客户端请求也是utf8的拿到的response也是utf8的我也不知道到底是什么问题所以我最终只能想了一个办法就是用代码...原创 2019-01-11 11:39:52 · 1543 阅读 · 0 评论 -
188-beego触发改变分类
beego触发改变分类选中分类后,要根据分类展示不同的内容改变选项后,会触发一个事件我们看script<script>window.onload$("#select").change(function(){ $("#form").submit()})</script><form id="form" method=""原创 2019-01-01 16:26:05 · 111 阅读 · 1 评论 -
187-beego多表操作
beego多表操作type User struct{Articles []*Articles `orm:"reverse(many)"`}type Article struct{Users []*User `orm:"rel(m2m)"`ArticleType *ArticleType `orm:"rel(fk)"`}type ArticleType struct...原创 2019-01-01 16:25:30 · 501 阅读 · 0 评论 -
185-beego编辑操作数据记录
beego编辑数据记录增加删除<a href="/delete?articleId={{.Id}}" >增加路由beego.Router("/delete".&con...,"get:HandleDelete")然后在控制器中实现删除func (this *ArticleController) HandleDelete(){//获取数...原创 2018-12-30 18:32:10 · 491 阅读 · 0 评论 -
184-数据分页
beego分页func (this *ArticleController) ShowIndex(){ o := orm.NewOrm(); //指定表 //queryseter qs := o.QueryTable("Article") //定义一个容器 var article []models.Article //查询 count,err := qs.A...原创 2018-12-30 18:31:34 · 100 阅读 · 0 评论 -
200-beego读取json快速插入数据库
读取json快速插入数据库如果不使用事务,直接插入效率会非常慢所以应该先开启事务然后将数据全部插入之后再提交事务 //创建orm对象 o := orm.NewOrm() //开启事务 o.Begin() //遍历切片,将cmt插入到数据库 for i := 0; i < len(comments); i++ { cmt := com...原创 2019-01-04 12:52:00 · 1018 阅读 · 0 评论 -
196-beego代码分析
beego代码分析//展示首页func (this *ArticleController) ShowIndex() { //从session中取出userName userName := this.GetSession("userName") //如果userName为nil,就说明没有登录 //那么就redirect重定向到login页面 if userName...原创 2019-01-03 20:42:56 · 197 阅读 · 0 评论 -
183-beego文件校验
beego文件校验保存图片if title=="" || content=="" || err!=nil{ this.Data["errmsg"]="添加失败" this.TplName="add.html" return}我们要解决1.文件覆盖的问题2.校验文件类型3.限制文件大小time.Now().Format("2018-01-01-18-19-.原创 2018-12-28 19:29:38 · 293 阅读 · 0 评论 -
220-beego结合jquery操作数据
beego结合jquery操作数据我们来写一下js先来写script标签其实我们的script标签是可以写在html标签外面的所以我们可以直接写在html标签外面<html></html><script type="text/javascript" src="/js/jquery-1.12.4-min.js"></...原创 2019-01-12 14:40:13 · 571 阅读 · 0 评论 -
221-jquery增删手动输入数据
实现一下减少商品$(".minus").click(function(){ //获取原来数量并减去一个 count = $(this).prev().val() count = parseInt(count) - 1 if (count <1){ count = 1 } //给后台发送数据 goodsId = $(this).prev().attr(...原创 2019-01-12 16:15:04 · 128 阅读 · 0 评论 -
324-channel原理浅析
channel原理浅析我们先来看一下channel的源码在runtime包下面找到chan.go看下// Copyright 2014 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that ca...原创 2019-03-21 17:13:30 · 5513 阅读 · 0 评论 -
309-golang切片slice操作
golang切片slice操作func Insert(arr []int, index int, value int) []int { result := make([]int, len(arr)+1) copy(result, arr[:index]) copy(result[index+1:], arr[index:]) result[index] = va...原创 2019-03-13 09:51:44 · 109 阅读 · 0 评论 -
320-go协程goroutine
go协程goroutine先说一下一些相关的关键性术语概念1.并发一个CPU上同时执行多个任务,CPU来回切换任务执行2.并行系统有多个CPU,每个CPU同一时刻都运行任务,互不抢占资源3.进程CPU在切换程序的时候,如果不保存上一个程序的状态,直接切换下一个程序,就会丢失上一个程序的一系列状态,所以引入了进程,用来划分运行时所需要的资源,所以进...原创 2019-03-20 16:09:45 · 144 阅读 · 0 评论 -
298-gob包序列化与反序列化
gob包序列化我们来利用gob包来进行序列化 和反序列化来写点代码func main() { person := Person{"Alice", 20} var buffer bytes.Buffer encoder := gob.NewEncoder(&buffer) err := encoder.Encode(&p...原创 2019-03-04 13:02:25 · 1351 阅读 · 0 评论 -
301-golang之命令行参数os.Args
golang之命令行参数os.Args我们先写一个小demo,test.go文件func main() { cmds := os.Args for i, cmd := range cmds { fmt.Printf("cmd[%d] = %s \n", i, cmd) }}然后我们在命令行运行go run test.go结果输出了...原创 2019-03-05 11:24:35 · 1473 阅读 · 0 评论 -
278-golang垃圾回收
golang垃圾回收在以前,内存管理是程序员开发应用的一大难题传统的系统级变成语言(比如C,C++),程序员必须对内存小心的进行管理操作控制内存的申请和释放稍有不慎就可能产生内存泄漏的问题这种问题不容易发现而且难以定位解决这种问题一般有两种办法1.内存泄漏检测工具 这种工具的原理一般是静态代码扫描 通过扫描程序来检测可能出现内存泄漏的代码段...原创 2019-02-25 17:08:27 · 175 阅读 · 0 评论 -
277-go语言CGO
go语言CGO什么是CGO简单来说,就是go语言代码中编写c语言代码和调用c语言代码在一些偏底层的业务中用c来编写会比较简单然后在go中调用我们来写几个简单的小例子我们的c语言代码必须写在import "C"的上面,不能有空行比如这样/*#include <stdio.h>int a = 1;char s[30] = "...原创 2019-02-25 17:02:41 · 164 阅读 · 0 评论 -
276-go语言golang面试题知识点
go面试题1.go语言中的主要关键字,一共25个1.程序声明: 1.import 2.package2.实体声明和定义 1.chan 2.const 3.func 4.interface 5.map 6.struct 7.type 8.var3.流程控制 1.go 2.select 3.break 4.case 5.continu...原创 2019-02-24 17:25:41 · 4390 阅读 · 0 评论 -
275-golang结构体变量命名以及json
golang结构体变量命名以及json我们先来看一段简单的代码func main() { p1 := Person{"Alice", 20} fmt.Println(p1) bytes, _ := json.Marshal(p1) fmt.Println(string(bytes))}type Person struct { name s...原创 2019-02-22 11:39:55 · 1610 阅读 · 0 评论 -
274-golang多态浅析
golang多态浅析首先我们说一下什么是多态接口的多种不同的实现方式就是多态比如在java中,两个类实现同一个接口比如这样public interface Person{ public void SayHello();}public class Student implements Person{ public void SayHello()...原创 2019-02-21 21:02:53 · 429 阅读 · 0 评论 -
273-golang指针浅析
golang指针浅析我们先来看一段简单的代码func main() { person := Person{"Alice", 20} fmt.Printf("%p\n", &person) p1 := &person fmt.Printf("%p\n", p1) fmt.Printf("%p\n", &p1)}type ...原创 2019-02-21 20:08:05 · 121 阅读 · 0 评论 -
216-beego列表去重筛选
beego列表去重筛选func (this *GoodsController) ShowIndex(){username := this.GetSession("username")if username==nil{ this.Data["username"]=""}else{ this.Data["username"]=username.(string)}...原创 2019-01-09 21:49:29 · 860 阅读 · 2 评论 -
215-beego登录记住用户名
beego登录记住用户名本来这是一个非常非常简单的业务但是自己太粗心结果搞了好久真是无语开始吧首先我们有登录业务<form method="post" action="/login"> <input type="text" name="username" class="name_input" placeholde原创 2019-01-09 09:09:36 · 666 阅读 · 0 评论 -
223-beego增删改查操作数据
beego增删改查操作数据ShowUserCenterOrdervar goods []map[string]interface{}//获取订单数据o := orm.NewOrm()//获取用户名userName := this.GetSession("userName").(string)//定义一下var orderInfos []models.O...原创 2019-01-14 16:26:26 · 729 阅读 · 0 评论 -
214-beego编辑显示地址
beego编辑显示地址beego.Router("/goods/addSite", &controllers.UserController{})func (this *UserController) HandleSite(){//1.获取//2.校验//3.处理//4.返回//获取数据receiver := this.GetString("receiver...原创 2019-01-07 21:05:52 · 131 阅读 · 0 评论 -
182-beego简单文章管理
beego简单文章管理type Article struct{ Id int `orm:"pk;auto"` Title string `orm:"size(100)"` Time time.Time `orm:"type(datetime)"` Count int `orm:"default(0)"` Type string `orm:"size(50)"` Img ...原创 2018-12-28 19:29:04 · 216 阅读 · 0 评论 -
181-beego简单注册登录
beego简单注册四个步骤请求 -- 路由 -- 控制器 -- 页面注册实现:1.获取数据2.校验数据3.操作数据4.返回数据userName := this.getString("userName")pwd := this.getString("password")if userName=="" || pwd==""{ this.Data["err"...原创 2018-12-28 19:28:38 · 1212 阅读 · 0 评论 -
62-条件变量结构体Cond
条件变量结构体Cond先看一下Cond的源码type Cond struct { noCopy noCopy // L is held while observing or changing the condition L Locker // 在条件变量中有把锁 notify notifyList checker copyChecker}...原创 2018-11-25 21:42:03 · 221 阅读 · 0 评论 -
25-golang随机数
我先写了一段代码for i := 0; i < 10; i++ { intn := rand.Intn(10) fmt.Print(intn,",")}我发现每次都是1,7,7,9,1,8,5,0,6,0,这不对啊一点都不随机啊怎么每次都一样 原来是因为这样拿随机数的话每次给的种子都是一样的,那么每次产生的随机数也是一样的所以我...原创 2018-11-08 13:52:49 · 80 阅读 · 0 评论 -
013-golang中json转换成结构体或者map
先拿一个json字符串jsonString := `{"name":"张三","age":20,"data":["男","未婚"]}` func main() { jsonString := `{"name":"张三","age":20,"data":["男&quo原创 2018-11-05 15:56:07 · 533 阅读 · 0 评论 -
012-golang结构体或map转换成json
先来说结构体 func main() { stu:=Student{"张三",20,[]string{"男","未婚"}} bytes, err := json.Marshal(stu) if err != nil { fmt.Println(err) return } fmt.Println(string(bytes...原创 2018-11-05 15:31:07 · 589 阅读 · 0 评论 -
24-golang简单小爬虫
来写一个简单的小爬虫只是小试牛刀只是学点皮毛 func main() { var page int fmt.Println("请输入想要爬取的页面") fmt.Scan(&page) result := HandlePage(page) name := strconv.Itoa(page) file, err ...原创 2018-11-07 22:52:30 · 85 阅读 · 0 评论