上一页 1 2 3 4 5 6 7 8 ··· 32 下一页
摘要:极简强大Go语言开发在线客服GOFLY0.2.9发布 更新日志: 1.访客开多个窗口时 , 单点登录关闭旧ws连接 2.访客切换窗口时可以自动重连 3.访客到来时 , http接口和ws接口同时发送给客服上线信息 4.客服后台定时拉取在线访客接口 5.客服后台切换tab拉取在线访客 下载地址: ht 阅读全文
posted @ 2021-02-24 15:25 陶士涵 阅读(54) 评论(0) 推荐(0) 编辑
摘要:先上结论PHP不支持方法重载和只支持方法覆盖 所谓方法重载是指 , 方法名相同 , 参数不相同 , 这时候是表示两个方法 ,传不同的参数调用不同的方法 PHP如果在同一个类里面的两个方法 , 方法名相同会报错 redeclare 重复定义 如果是在子类和父类的相同 , 那么就会覆盖父类的方法 , 不 阅读全文
posted @ 2021-02-24 15:12 陶士涵 阅读(31) 评论(0) 推荐(0) 编辑
摘要:本文转载,目的方便查阅 01介绍 Golang 1.16 已经正式发布了,其中 Modules 有一些变化: 默认开启 Modules。 不自动修改 go.mod 和 go.sum。 通过指定 @version 后缀安装特定版本可执行文件。 新增 retract 指令撤回 Module 版本。 使用 阅读全文
posted @ 2021-02-24 11:55 陶士涵 阅读(914) 评论(0) 推荐(0) 编辑
摘要:在设计数据库的时候经常定义varchar字段 ,但是详细的区别还真不是特别清楚 char的长度是不可变的,而varchar的长度是可变的。 定义一个char[10]和varchar[10]。 如果存进去的是‘tao’,那么char所占的长度依然为3,除了字符‘tao’外,后面跟7个空格,varcha 阅读全文
posted @ 2021-02-24 11:32 陶士涵 阅读(23) 评论(0) 推荐(0) 编辑
摘要:先上结论 , 咱们默认人读字节时 , 从右往左读 , 这就是小端序 , 因为计算机处理的时候会从低位到高位处理 , 和人的习惯正好相反 本文转自公众号:网管daobidao 字节序,又称端序或尾序(英语中用单词:Endianness 表示),在计算机领域中,指电脑内存中或在数字通信链路中,占用多个字 阅读全文
posted @ 2021-02-24 10:35 陶士涵 阅读(82) 评论(0) 推荐(0) 编辑
摘要:首先要了解MVCC,MVCC叫做多版本并发控制,实际上就是保存了数据在某个时间节点的快照。 我们每行数实际上隐藏了两列,创建版本号,过期(删除)版本号,每开始一个新的事务,版本号都会自动递增。 拿user表举例子,假设我们插入两条数据,他们实际上应该长这样 , 创建版本号是递增的。 idnamecr 阅读全文
posted @ 2021-02-23 09:56 陶士涵 阅读(60) 评论(0) 推荐(0) 编辑
摘要:使mysql表支持存储表情字符需要注意以下几个字符编码的处理: 数据库编码可以是 utf8mb4 表的编码是 utf8mb4 表中内容字段是 utf8mb4 连接数据库时是 utf8mb4 例如go连接mysql : 这里的dsn有字符指定 sql.Open("mysql", db.Dsn) 插入语 阅读全文
posted @ 2021-02-22 13:56 陶士涵 阅读(45) 评论(0) 推荐(0) 编辑
摘要:在使用标准库的base64 decode时会出现非法字符的错误 , 下面这个函数是我测试可以正常解密的 注意这个参数 : base64.RawStdEncoding 是解决非法字符的关键 func Base64Decode(str string) string { reader := strings 阅读全文
posted @ 2021-02-20 13:52 陶士涵 阅读(40) 评论(0) 推荐(0) 编辑
摘要:在手机端经常有这样的需求 , 最下面是输入框类似微信输入框 , 我们一般设置成了position:fixed 但是当点击到输入框的时候, 软键盘弹出来遮挡了输入框 其实解决这个问题非常简单 , 那就是让body滚动到最底部 , 我们给个滚动最大值就可以了 例如下面的jquery: $(window) 阅读全文
posted @ 2021-02-20 12:07 陶士涵 阅读(115) 评论(0) 推荐(0) 编辑
摘要:使用正则表达式可以非常方便的进行复杂的字符串的替换 例如常见需求 , 把手机号12323432342 中间四位换成* $telphone=preg_replace("/(\d{3})(\d+)(\d{4})/",'$1****$3',"12323422342"); 把IP地址后面两位换成* 124. 阅读全文
posted @ 2021-02-20 12:02 陶士涵 阅读(42) 评论(0) 推荐(0) 编辑
摘要:直接使用go-smtp包 ,为了防止乱码 , 主题subject进行了base64编码 import ( "encoding/base64" "github.com/emersion/go-sasl" "github.com/emersion/go-smtp" "strings" ) func Se 阅读全文
posted @ 2021-02-19 11:29 陶士涵 阅读(16) 评论(0) 推荐(0) 编辑
摘要:java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。 因 阅读全文
posted @ 2021-02-18 14:51 陶士涵 阅读(28) 评论(0) 推荐(0) 编辑
摘要:首先接口和抽象类的设计目的就是不一样的。接口是对动作的抽象,而抽象类是对根源的抽象。对于抽象类,比如男人,女人这两个类,那我们可以为这两个类设计一个更高级别的抽象类--人。对于接口,我们可以坐着吃饭,可以站着吃饭,可以用筷子吃饭,可以用叉子吃饭,甚至可以学三哥一样用手抓着吃饭,那么可以把这些吃饭的动 阅读全文
posted @ 2021-02-18 12:50 陶士涵 阅读(28) 评论(0) 推荐(0) 编辑
摘要:本文摘自labuladong算法小抄 , 使用go语言描述 我们公众号的成名之作 学习数据结构和算法的框架思维 中多次强调,先刷二叉树的题目,先刷二叉树的题目,先刷二叉树的题目,因为很多经典算法,以及我们前文讲过的所有回溯、动归、分治算法,其实都是树的问题,而树的问题就永远逃不开树的递归遍历框架这几 阅读全文
posted @ 2021-02-18 11:47 陶士涵 阅读(67) 评论(0) 推荐(0) 编辑
摘要:有些接口需要增加header头信息 , 里面传递token , 这个时候就要求在post的时候能传递自己的header信息 func PostHeader(url string, msg []byte, headers map[string]string) (string, error) { cli 阅读全文
posted @ 2021-02-09 14:38 陶士涵 阅读(247) 评论(0) 推荐(0) 编辑
摘要://Post("http://xxxx","application/json;charset=utf-8",[]byte("{'aaa':'bbb'}")) func Post(url string, contentType string, body []byte) (string, error) 阅读全文
posted @ 2021-02-08 17:39 陶士涵 阅读(113) 评论(0) 推荐(0) 编辑
摘要:按照文档要求 bool, for JSON booleans float64, for JSON numbers string, for JSON strings []interface{}, for JSON arrays map[string]interface{}, for JSON obje 阅读全文
posted @ 2021-02-08 17:37 陶士涵 阅读(61) 评论(0) 推荐(0) 编辑
摘要:获取当前时间戳的函数 , 默认有秒和纳秒 , 毫秒需要处理一下 , 转成字符串需要转换一下 fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix()) fmt.Printf("时间戳(纳秒):%v;\n",time.Now().UnixNano()) fmt.Prin 阅读全文
posted @ 2021-02-08 17:06 陶士涵 阅读(471) 评论(0) 推荐(0) 编辑
摘要:很常见的需求 import "strconv" //先导入strconv包 // string到intint, err := strconv.Atoi(string) // string到int64int64, err := strconv.ParseInt(string, 10, 64) // i 阅读全文
posted @ 2021-02-08 17:03 陶士涵 阅读(105) 评论(0) 推荐(0) 编辑
摘要:项目中经常使用的md5和sha256加密函数 //md5加密 func Md5(src string) string { m := md5.New() m.Write([]byte(src)) res := hex.EncodeToString(m.Sum(nil)) return res } // 阅读全文
posted @ 2021-02-08 16:59 陶士涵 阅读(100) 评论(0) 推荐(0) 编辑
摘要:在使用很多函数的时候需要传入string字符串 , 但是函数参数类型是io.Reader , 这时候就需要将string转换为Reader类型 例如下面的: strings.NewReader("aaaa") NewReader返回从读取的新Reader。 它类似于bytes.NewBufferSt 阅读全文
posted @ 2021-02-08 15:31 陶士涵 阅读(428) 评论(0) 推荐(0) 编辑
摘要:官方文档里的代码有点点问题 , 可以按照下面这样延时去调用plus的代码 , 等待plus加载完毕 另外增加上条件编译 , 只有在app下面这段代码才会编译 //#ifdef APP-PLUS // 页面加载时触发 setTimeout(function(){ if(plus){ var pinf 阅读全文
posted @ 2021-02-08 11:01 陶士涵 阅读(124) 评论(0) 推荐(0) 编辑
摘要:本文来自labaladong的算法小抄 , 使用GO语言重新描述代码部分 寻找回文串的核心思想是从中心向两端扩展: func Palindrome( s string,l,r int)string { str:=[]rune(s) for l>=0 && r < len(str) && str[l] 阅读全文
posted @ 2021-02-03 23:09 陶士涵 阅读(41) 评论(0) 推荐(0) 编辑
摘要:注意当json_encode中文的时候 , 默认是以unicode编码的 , 如果想变成中文需要增加参数JSON_UNESCAPED_UNICODE 但是JSON_UNESCAPED_UNICODE参数是php5.4以上才支持的 所以可以使用下面这段代码: function json_encode2 阅读全文
posted @ 2021-02-02 17:59 陶士涵 阅读(27) 评论(0) 推荐(0) 编辑
摘要:自己的ID是自动获取的 ,然后输入对方的ID , 对方的ID可以这样获取 , 再打开新的浏览器或者手机也可以 原理是 利用js的h5新特性获取摄像头视频流, 通过peerjs的服务交换双方的信息 , 然后使用浏览器的webrtc特性进行点对点通信 , 这个时候是不需要中间服务器的 代码如下: <ht 阅读全文
posted @ 2021-02-01 21:49 陶士涵 阅读(258) 评论(0) 推荐(0) 编辑
摘要:当文本中有反斜杠 , 需要使用grep查找出带有反斜杠的内容 , 比如下面的文本 bbbaaaeeccc\tdd 想要查找出ccc\t这行的文本 如果你使用 cat xxx.txt |grep "ccc\t" 或者 cat xxx.txt |grep "ccc\\t" 加一个转义, 是查不出来的 需 阅读全文
posted @ 2021-01-27 16:15 陶士涵 阅读(643) 评论(0) 推荐(0) 编辑
摘要:在一些界面上 , 如果每个icon都去找图片还是相当麻烦的 , 直接使用css画出icon就方便的多了 , 下面两个是画的文件夹和话筒的icon 效果: 文件夹: .folderBtn { display: inline-block; background-color: transparent; o 阅读全文
posted @ 2021-01-26 11:34 陶士涵 阅读(46) 评论(0) 推荐(0) 编辑
摘要:之前开发的GO语言客服系统已经360+ star了 , 撒花 又开发出了多商户版本 , 继续撒花 测试地址: http://gofly2.sopans.com/index_cn 【Feature:新增的特性(从无到有)】 权限划分超管/商户/坐席 商户可新增坐席,超管可新增商户 后台设置页权限划分 阅读全文
posted @ 2021-01-22 16:30 陶士涵 阅读(98) 评论(0) 推荐(0) 编辑
摘要:比如回车事件是: @keyup.enter.native="" 比如按下事件 @keydown.native="" 当下面不管用的时候加个 .native @keydown(键盘按下时触发),@keypress(键盘按住时触发),@keyup(键盘弹起) 获取按键的键码 e.keyCode @key 阅读全文
posted @ 2021-01-18 19:00 陶士涵 阅读(174) 评论(0) 推荐(0) 编辑
摘要:注意问题 , 当对interface变量进行判断是否为nil时 , 只有当动态类型和动态值都是nil , 这个变量才是nil 下面这种情况不是nil func f(out io.Writer) { // ...do something... if out != nil { out.Write([]b 阅读全文
posted @ 2021-01-15 17:39 陶士涵 阅读(117) 评论(0) 推荐(0) 编辑
摘要:当写项目的过程中 , 有时候进行逻辑判断 , 如果没注意对两个interface类型的变量进行比较 , 会造成混乱问题 接口比较的时候 , 只有当这两个变量的动态类型 , 动态值都相等的时候 , 才是相等的 一个nil的interface类型 , 是包含下面俩的 , 动态类型和动态值 使用fmt.P 阅读全文
posted @ 2021-01-15 17:27 陶士涵 阅读(228) 评论(0) 推荐(0) 编辑
摘要:在chrome 80版本以上, 会默认开启same-site策略 samesite有以下几个值 Lax : 对同源、顶级域的请求才可以携带cookie (等价于same-site)Strict: 对同源请求才可以使携带cookie (等价于same-origin)None: 对于cookie的使用无 阅读全文
posted @ 2021-01-14 16:02 陶士涵 阅读(236) 评论(0) 推荐(0) 编辑
摘要:摘自labuladong算法小抄,使用go语言重新描述 之前的文章「递归反转链表的一部分」讲了如何递归地反转一部分链表,有读者就问如何迭代地反转链表,这篇文章解决的问题也需要反转链表的函数,我们不妨就用迭代方式来解决。 本文要解决「K 个一组反转链表」,不难理解: 这个问题经常在面经中看到,而且 L 阅读全文
posted @ 2021-01-12 23:36 陶士涵 阅读(105) 评论(0) 推荐(0) 编辑
摘要:转载自labuladong的算法小抄,go语言描述 反转单链表的迭代实现不是一个困难的事情,但是递归实现就有点难度了,如果再加一点难度,让你仅仅反转单链表中的一部分,你是否能够递归实现呢? 本文就来由浅入深,step by step 地解决这个问题。如果你还不会递归地反转单链表也没关系,本文会从递归 阅读全文
posted @ 2021-01-11 22:37 陶士涵 阅读(67) 评论(0) 推荐(0) 编辑
摘要:摘自廖雪峰网站 JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部: 'use strict'; function foo() { var x = 'Hello, ' + y; console.log(x); var y = 'Bob'; } fo 阅读全文
posted @ 2021-01-11 15:05 陶士涵 阅读(32) 评论(0) 推荐(0) 编辑
摘要:本文转自labuladong的算法小抄 , 代码部分我使用go重新描述 先给大家讲个笑话乐呵一下: 有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分 阅读全文
posted @ 2021-01-10 15:13 陶士涵 阅读(138) 评论(0) 推荐(0) 编辑
摘要:ie下audio不支持一些媒体类型 , 所以需要进行兼容处理 这里可以用js进行判断 , 并加载不同的资源文件 , 这样就兼容了ie if (b.canPlayType('audio/ogg; codecs="vorbis"')) { }else{ ie下加载不同的资源文件 } <audio id= 阅读全文
posted @ 2021-01-08 15:21 陶士涵 阅读(60) 评论(0) 推荐(0) 编辑
摘要:在使用elemetui的时候 , 在ie11下面会遇到这个报错 不支持incudes属性和方法 数组.incudes("元素") 是检测数组中是否包含某元素 支持的版本是 可以替换为 数组.indexOf("元素") > 0 阅读全文
posted @ 2021-01-08 15:12 陶士涵 阅读(41) 评论(0) 推荐(0) 编辑
摘要:1.有主键如果设置了主键,并且一般会把主键设置成自增。我们知道,Mysql里int类型是4个字节,如果有符号位的话就是[-2^31,2^31-1],无符号位的话最大值就是2^32-1,也就是4294967295。 如果超过上限就会看到错误提示:1062 - Duplicate entry '2147 阅读全文
posted @ 2021-01-08 11:31 陶士涵 阅读(190) 评论(0) 推荐(1) 编辑
摘要:大小端模式 多字节数据在内存里占用连续的内存空间 大端模式:就是我们平常看到的右到左读的形式,左边是高地址位,右边是低地址位 小端模式:和上面反过来,便于机器处理 边界对齐 内存按照字节编址 访问内存一次访问一个字,32位,4个字节 边界对齐就是,一个字存数据的时候,如果没有占满四个字节,剩余的字节 阅读全文
posted @ 2021-01-06 22:23 陶士涵 阅读(37) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 32 下一页