- 博客(446)
- 资源 (22)
- 收藏
- 关注
原创 golang中使用crypto/md5
golang中md5包实现了MD5哈希算法1、常量-Constantsconst BlockSize = 642、MD5字节块大小。const Size = 163、MD5校验和字节数 func Sumfunc Sum(data []byte) [Size]byte返回数据data的MD5校验和。下面来举个例子吧在src目录新建一个目录cryptoDemo,在目录下再新建一个md5Demo.gopackage cryptoDemoimport ( "crypto/md5"
2021-01-27 17:49:06
1064
原创 Golang 在Windows下交叉编译报错的解决办法
前段时间,编译一个golang项目时,把golang的操作系统设为了GOOS=linux,在测试代码时,发现报错exec:"...\\exec\\mian":file does not exist后来,查看一下环境变量,才发现是GOOS是编译Linux系统的文件还原成windows的只需要设置如下就可以了。go env -w GOOS=windows...
2021-01-27 11:17:32
3658
3
原创 有缓冲channel(管道)
1、有缓冲的通道(buffered channel)是指一种在被接收前能存储一个或多个值的通道。2、这种类型的通道并不强制要求goroutine之间必须同时完成发送和接收,通道会阻塞发送和接收动作的条件也会不同,只有在通道中没有要接收的值时,接收动作才会阻塞,只有在通道没有在可用缓冲区容纳被发送的值时,发送动作才会阻塞。3、这导致有缓冲的通道和无缓冲的通道之间的一个很大的不同,无缓冲的通保证进行发送和接收goroutine会在同一时间进行数据交换;有缓冲的通道没有这种保证。有缓冲区的channel,只
2021-01-19 23:12:54
1107
原创 无缓冲channel(管道)
1、无缓冲的通道(unbuffered channel)是指在接收前没有能力保存任何值的通道,2、这种类型的通道要求发送goroutine和接收goroutine同时准备好,才能完成和发送接收操作,如果两个goroutine没有同时准备好,通道会导致先执行或者接收操作的goroutine阻塞等待。3、这种对通道进行发送和接收的交互行为本身就是同步的,其中任意一个操作都无法离开另一个操作单独存在。func main() { // 创建一个有缓冲区的channel ch := make(chan in
2021-01-19 22:56:06
1287
原创 golang的channel基本介绍
1、goroutine是运行在相同的的地址空间,因此访问共享内存必须做好同步,goroutine奉行通过通信来共享内存,而不是共享内存来通信2、channel是引用类型,是CSP格式的个体实现,用于多个goroutine通讯,其内部实现了同步,确保并发安全。3、当我们复制一个channel或用于函数参数传递时,我们只是拷贝了一个channel引用,因此,调用者或被调用者将引用一个channel对象,和其它的类型一样,channel的零值也是nil.如何定义一个channel呢?如下:make(cha
2021-01-19 22:41:50
1492
原创 LOAD DATA INFILE使用与详解
Load data使用详解mysql导入数据一般都是用insert into,那么mysql有没有一个高效导入方法呢?答案是肯定的,那就是load data infile,下面我们来详细的讲解一下相关的使用方法基本语法:根据官方的: https://dev.mysql.com/doc/refman/5.7/en/load-data.htmlLOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REP
2021-01-08 18:30:28
30764
2
原创 go语言中的面向对象
对于面向对象的编程的支持go语言,设计得非常简洁而优雅,因为,go语言并没有沿袭传统面向对象编程中的诸多概念,比如,继承(不支持继承),尽管匿名字段的内存布局和行为类似继承,但它并不是继承、虚函数、构造函数和析构函数、隐藏的this指针等。go语言中没有封装、继承、多态这些概念。但同样通过别的方式实现这些特性:封装:通过方法实现继承:通过匿名字段实现多态:通过接口实现匿名字段:一般情况下,实义结构体的时候,字段名与其类型一一对应,实际GO支持只提供类型,而不写字段名的方式,也就是匿名字段,也称为嵌
2021-01-04 15:22:42
289
原创 go 复合类型
1、pointer:指针,默认值:nil2、array:数组,默认值:03、slice:切片,默认值:nil4、map:字典,默认值:nil5、struct:结构体,默认值:nil
2021-01-01 20:24:41
185
原创 go语言的工程管理
1、分文件编程(多个源文件)必须放在src目录下2、设置GOPATH环境变量3、同一个目录,包名必须一样1、下面同一级目录,包名不一样,直接报错2、同一级目录下,改为同一包名,就OK了4、通过 go env查看go相关的环境变量5、同一个目录,调用别的文件的函数,直接调用即可,无需包名引用...
2020-12-30 23:45:37
285
原创 go语言导入包的几种方式
1、导入包的简写方式package main//1、方式1:常规的导入方法//import "fmt"//import "os"//2、方式2:上面这种方式可以简写成如下方式,一般推荐这种方式import ( "fmt" "os")func main() { fmt.Println("this is a test go") fmt.Println("this is a test go", os.Args)}2、.操作,注意前面的点package mainimpor
2020-12-30 22:11:20
3570
原创 Go语言中defer的使用
1、先解释一下,go语言中关键字defer是干什么的?defer 用于注册延迟调用。defer 调用直到 return 前才被执。因此,可以用来做资源清理。多个defer语句,按先进后出的方式执行。defer语句中的变量,在defer声明时就决定了。看一下下面的例子:会先打印谁?package mainimport "fmt"func main(){ defer fmt.Println("aaaaaaaaa") fmt.Println("bbbbbbbbb")}上面的函数是
2020-12-29 11:36:13
346
2
原创 Django返回Json数据
1、在Django中,使用JSON传输数据,有两种方式,一种是引入python的JSON包,另一种是使用Django的JsonResponseMVT模式是通过模板直接渲染到页面,但有时候,我们有大部分都是通过AJAX请求接口,返回json数据,那这样就需要以Json的格式返回给前端了,其实也比较简单,直接引入相关的包就可以了,如下:这种方式,是直接通过2、另一种是使用Django的JsonResponse...
2020-12-29 10:27:51
3719
1
原创 Python虚拟环境virtualenv的安装与使用
1、Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv。2、venv虚拟环境主要是为了使自己的Python二进制依赖相关的包(允许有不同的Python版本创作环境),并且可以拥有自己独立的一套Python包。他最大的好处是,可以让每一个python项目单独使用一个环境,而不会影响python系统环境,也不会影响其他项目的环境。3、防止系统中出现包管理混乱和版本冲突4、windows创建虚拟环境首先、确保安装好python3的环境,我的pyth
2020-12-28 23:20:31
278
原创 go 切片
1、go语言中切片英文是 slice,跟我们其它语言的数组有一点相似,其实,go切片(就是一个动态的数组),切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用类型的传递机制。2、使用和数组类似,遍历切片,访问切片的元素和求切片的长度len(slice)都是一样3、切片的长度是可以变化的。因此是一个动态变化的数组基本语法var 切片名 []类型比如:var a []int切片使用(3种方式)1、方式一,定义一个切片,用切片去引用前面创建好的数组。var arr [5]int =
2020-12-23 10:15:39
447
原创 Go语言的运算符
1 算术运算符运算符术语示例结果+加10 + 515-减10 - 55*乘10 * 550/除10 / 52(值取整数位,要想带小数为,则10.0/5=2.0)%取模(取余)10 % 31(取模公式:a-a/b*b)++后自增,没有前自增(单独语句,并不是运算符)a=0; a++a=1--后自
2020-12-22 23:45:04
185
1
原创 golang语言中简短变量
1、 简短变量 := 只能用于方法内部,并且只能初始化新的变量,不能用于已声明变量赋值例如:var age int = 8age := 1 // error2、:= 声明简短变量必须是一个新变量,如果多个变量初始化只需要满足左边至少有一个新变量即可...
2020-12-22 18:03:19
347
原创 go指定目标操作系统的平台和处理架构
1、如果在跨平台编译的时候,使用CGO可能会有问题,但是我们可以把它禁用了,再指定相应的目标平台SET CGO_ENABLED=0 // 禁用CGOSET GOOS=linux // 目标平台liunxSET GOARCH=amd64 // 目标处理器架构是amd642、再用 go build 命令,就可以编译Linux平台的可执行文件了3、windows下编译MAC平台64位可执行程序SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd
2020-12-14 22:48:00
3127
原创 go run或者go build运行很慢
1、我们先查看一下go的环境配置go env2、我们把设为阿里云go env -w GOPROXY=http://mirrors.aliyun.com/goproxy/
2020-12-14 22:33:51
10683
7
原创 Python字典遍历
在Python里,我们把对象称为字典1、for循环遍历字典, 默认获取的是keymy_dict = {'bookName': 'python', 'price': 100}for key in my_dict: print(key)# 输出>> bookName>> price2、根据key获取value值my_dict = {'bookName': 'python', 'price': 100}for key in my_dict: val
2020-12-12 23:37:10
9636
原创 VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运行 VMware Workstation。
Hyper-v是微软得一项虚拟化技术,WIN10系统中集成了它,所以如果WIN10系统的Hyper-v服务开启了的话,就会和VMware Workstation产生冲突。解决办法:1、关闭Hyper-v服务,以管理员身份运行命令提示符输入命令:bcdedit /set hypervisorlaunchtype off2、开启Hyper-v服务,以管理员身份运行命令提示符输入命令:bcdedit /set hypervisorlaunchtype auto...
2020-11-29 00:56:36
2553
1
原创 centos安装python3详细教程
centos7自带版本是python2.7如果要用的3.0以上的版本需要手动安装1、先查看系统python的位置在哪儿whereis pythonpython2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/cd /usr/bin/ll python*从下面的图中我们可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么
2020-11-20 23:10:16
30254
32
原创 mysql 授权登录
1、进入MySQL命令行,执行如下命令GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;2、刷新MySQL的系统权限flush privileges;
2020-11-20 22:26:35
195
原创 安装完xampp 5.6.3后,执行/opt/lampp/lampp报错
[root@localhost ~]# /opt/lampp/lamppegrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directoryegrep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or
2020-11-20 11:06:05
1267
2
原创 CentOS7.5卸载python2.7及yum后,重新安装环境
1、删除已有的Pythonrpm -qa|grep python|xargs rpm -ev --allmatches --nodepswhereis python |xargs rm -frvwhereis python2、删除已有的yumrpm -qa|grep yum|xargs rpm -ev --allmatches --nodepswhereis yum |xargs rm -frv3、 创建目录用于存放Python和yum的rpm包mkdir /usr/local/s
2020-11-19 16:09:21
923
原创 MySQL连接列值无法使用+号连接字符串的处理方法
1、在MySQL数据库中,连接列值,如果我们使用+号的话,就会出现结果”0″,如下图2、在MySQL数据库中,连接列值必须用 CONCAT语法格式:SELECT CONCAT(str1,str2,...) FROM TABLE如下图
2020-10-25 22:11:53
622
2
原创 cloudreve私有云盘配置后台运行
第一、在/usr/lib/systemd/system目录下创建一个服务cloudreve.service通过vi打开服务配置:vi /usr/lib/systemd/system/cloudreve.service输入如下内容:[Unit]Description=CloudreveDocumentation=https://docs.cloudreve.orgAfter=network.targetWants=network.target[Service]Type=simpleW
2020-10-08 00:54:53
5970
1
原创 REST中如何区别post和put的请求
第一个问题,首先我们了解一下什么是幂等性1、幂等性:百度百科给的定义是:在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的更复杂的操作幂等保证是利用唯一交易号(流水号)实现。2、REST请求中哪些是幂等操作GET,PUT,DELETE都是幂等操作,而PO
2020-10-06 00:13:24
2188
原创 mysql事务
关于事务1、什么是事务事务对应的英语单词:Transaction事务:1、一个最小的不可再分的工作单元。2、通常一个事务对应一个完整的业务(例如:银行账户转账业务,该业务就是一个最小的工作单元)。3、而一个完整的业务需要批量的DML语句(insert、update,delete)共同联合完成。4、事务只和DML语句有关系,或者说DML语句才有事务。5、以上所描述的批量的DML语句有多少DML语句,这个和业务逻辑有关系,业务逻辑不同DML语句的个数也不同。2、关于银行账户转账操作,账户转账
2020-10-05 01:23:25
159
原创 数据库设计三范式
1、数据库设计三范式,设计数据库表的时候所依据的规范,共三范式第一范式:要求有主键,并且要求每一个字段原子性不可再分第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。下面的示例就不符合第一范式。学习编号学习姓名联系方式1001张三13888888888,zhangsan@163.com1002李四13666666666 ,lisi@163.com1001王五13999999999,wangwu@163
2020-10-04 13:26:52
758
原创 查看创建表时结构的结构和字符编码
1、查看创建表时的结构:show create table + 表名mysql> show create table likes;2、查看mysql的相关字符编码方式:show variables like ‘char%’;show variables like 'char%';
2020-10-03 12:45:38
385
原创 导入sql文件时Mysql表名变小写的解决方案
在导入mysql时,有时候明明创建的是大写的,可是创建成功之后,数据库名却变成了小写,有些表名明明DDL里写的是大写字母,可是导入进来的时候却变成了小写,刚开始没有注意,可是在程序执行的时候,发现某某表名找不到,刚开始不知道是为什么,可是后来发现这是大问题,问题也不知道是出现在哪里,最终,一一对比之后,发现是表名的大小写的问题,但我明明写的是大写的,为什么导入进来却是小写的,建了又删,可是就是不行,查看文档才发现,是my.ini 里面的mysqld出了问题,没有进行大小写的约束,解决办法:在my.ini
2020-09-21 00:28:30
3050
1
原创 sequelize防止在执行查询时将SQL输出到控制台?
sequelize在开发环境时,有时想查看一下SQL日志输出,但是在生产环境又不想让他在控制台输出SQL日志,解决方法就是在创建Sequelize对象时,将false传递给logging参数即可var sequelize=new Sequelize('database','username‘,'password',{ //disable logging;default:console.log logging:false})或者有config配置文件的,把config.dev.ts文件开启,生产环
2020-09-18 10:53:29
2714
原创 运行node.js时报错module is not defined
使用 require导入模块时,经常会要在导入之前的文件里,暴露这个变量和方法,那么我们便会使用:moudle.exports=logTime,通过module.exports向外暴露多个模块在代码里引入执行之后,会报错ReferenceError: moudle is not defined解决方法是:我们把moudle写错了,正确的应该是:modulemodule.exports = logTimemoudle和module区别是什么呢?请参考下面的文章https://blog.c
2020-09-14 00:15:02
20751
11
原创 如何在Centos安装Redis
一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装yum install -y gcc二、下载并解压安装包wget http://download.redis.io/releases/redis-5.0.3.tar.gztar -zxvf redis-5.0.3.tar.gz三、cd切换到redis解压目录下,执行编译cd redis-5.0.3make四、安装并指定安装目录make i
2020-09-11 15:34:23
128
原创 如何在centOS下查看后台运行进程、结束进程
1、进程后台运行:nohup 代码&代码是要运行的命令nohup 代码&例如:运行一个名字叫fullbook_2_4.jar的jar包,这样打就可以了nohup java -jar fullbook_2_4.jar&2、查看进程ps -ef可以查看所有进程3、结束进程kill -pid通过查看进程发现上面运行的jar包的pid是21558,就可以这样结束它kill 21550...
2020-09-11 00:38:44
5819
原创 如何使用PM2 部署 nodejs 项目
目前似乎最常见的线上部署nodejs项目的有forever、pm2这两种。1、forever管理多个站点,每个站点访问量不大,不需要监控。2、pm2 网站访问量比较大,需要完整的监控界面。PM2的主要特性:内建负载均衡(使用Node cluster 集群模块)后台运行0秒停机重载,我理解大概意思是维护升级的时候不需要停机具有Ubuntu和CentOS 的启动脚本停止不稳定的进程(避免无限循环)控制台检测提供 HTTP API远程控制和实时的接口API ( Nodejs 模块,允许和P
2020-09-09 11:18:33
3341
原创 vue使用moment格式化时间
第一、安装momentnpm install moment --save第二、在main.js引入moment,并且设一个全局的过滤器import Vue from 'vue'import App from './App.vue'import moment from 'moment'import './assets/css/bootstrap.min.css'import './assets/css/index.css'Vue.config.productionTip = false
2020-09-03 17:07:34
953
js解决IE6~8的响应式布局问题
2017-12-31
JS自定义地图标注
2017-12-31
Setup Factory v9.2 最完整中文汉化注册版
2014-04-22
临摹炫彩图标
2012-12-08
PS保存为ICO 图标插件
2012-07-13
flash播放器(swf格式文件)
2011-12-08
Illustrator条形码插件
2010-05-29
IIS5.1(Internet 信息服务)
2010-05-29
破解Word与Excel的文档密码
2009-06-03
gif动画图像制作工具软件
2009-06-02
ADSL拨号网络密码查看器
2009-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅