编程语言
文章平均质量分 63
序 木
主要从事系统架构与后台开发
展开
-
go语言结构体数组的类型转换方法
今天碰见一个类型转换的问题,用了一个迂回手段解决了,有些trick,不知道有没有更好的办法,欢迎交流。问题描述:(go语言环境)结构体数组 TestStruct//初始化,赋值testArr := []*Test{ &Test{ ID: "123456", Name: "abcdef", },}//结构体使用的方法参数值func Hello(collectr []*Test) error {}...原创 2021-06-04 11:45:44 · 2916 阅读 · 0 评论 -
Mysql数据库:主键、唯一值、索引、分区列
SQL语句检测可以用EXPLAIN或者DESC查看sql是否使用到索引1、然后给时间字段创建索引原创 2021-05-28 11:57:18 · 1713 阅读 · 0 评论 -
go语言基本概念大集合,持续更新,go build,go get,go install,go run
环境变量:GOROOT 和 GOPATHGOROOT就是go的安装路径/usr/local/go/binGOPATH工作目录,编译后二进制的存放目的地和import包时的搜索路径,如:/root/goGOPATH目录约定有三个子目录src存放源代码(比如:.go .c .h .s等) ,按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。 pkg编译时生成的中间文件(比如:.a),golang编译包时 b.原创 2020-12-11 14:07:57 · 842 阅读 · 0 评论 -
go语言,判断原始是否在数组中
func IsContainInArray(item string, items []string) bool { for _, eachItem := range items { if eachItem == item { return true } } return false}原创 2020-12-07 20:16:59 · 1170 阅读 · 0 评论 -
go语言,根据开始日期和结束日期计算出时间段内所有日期
// GetBetweenDates 根据开始日期和结束日期计算出时间段内所有日期// 参数为日期格式,如:2020-01-01func GetBetweenDates(sdate, edate string) []string { d := []string{} timeFormatTpl := "2006-01-02 15:04:05" if len(timeFormatTpl) != len(sdate) { timeFormatTpl = timeFormatTp.原创 2020-12-07 20:12:12 · 1923 阅读 · 1 评论 -
如何用shell命令把一个文件复制100份
for i in {1..100};do echo -ne "hello-$i.txt ";done | xargs -n 1 cp hello.txt原创 2020-10-10 18:40:19 · 4795 阅读 · 1 评论 -
5个问题,搞清楚JSON数据格式,大括号{}中括号[]单引号‘‘双引号““冒号字符串
到底该用大括号还是用中括号?[]中括号,表示一个数组。也可以理解为一个数组对象。{}大括号,表示一个对象。里面值需要是 key:value 的形式。{} 和 [] 一起使用,可以组成一个对象数组。到底该用双引号还是用单引号?json的数据, 都是用 双引号, 不管是key, 还是 value, 都要用 双引号到底用点还是用[下标] 来访问?对象的属性用.(点)叠加,数组用 [下标] 来访问。用点号来引用对象的属性/或函数 (函数后面要加小括号)。中...原创 2020-08-06 15:22:22 · 9749 阅读 · 0 评论 -
为什么需要NoSQL,NoSQL是什么
计算机科学中,任何设计都会有理论支撑。数据库设计自然不会例外。NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。理论支撑数据库分类,简单分成,关系型数据库核非关系型数据库。没错,NoSQL就属于非关系型数据库,它的理论支撑是CAP理论,CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较...原创 2020-04-24 20:10:43 · 561 阅读 · 0 评论 -
一个脚本搞定文件合并去重,大数据处理,可以合并几个G以上的文件
问题:先讲下需求,有若干个文本文件(txt或者csv文件等),每行代表一条数据,现在希望能合并成 1 个文本文件,且需要去除重复行。分析:一向奉行简单原则,如无必要,绝不复杂。如果数据量不大,那么如下两条命令就可以搞定合并:cat a.txt >> new.txtcat b.txt >> new.txt……去重:cat new....原创 2020-04-22 20:17:50 · 2200 阅读 · 0 评论 -
快速了解SQL语言的简单分类
SQL语言大家再熟悉不过了,这里谈谈常见的SQL语句分类,一般按照功能分为如下4类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。常见的增删改查功能对应的划分如下:当然,分法不一,目的是快速全面整理了解SQL操作,也有人分成如下两类:这一篇博文很轻松哈,完。...原创 2020-04-09 19:43:21 · 391 阅读 · 0 评论 -
mysql数据导入和导出,备份和迁移
数据导入导出还是比较常见的,一、常规数据导入导出一般如果数据不大,直接操作 *.sql 文件即可。1、数据导出## 导出整个数据库结构和数据# mysqldump -h localhost -P 3306 -uroot -p123456 database > test.sql## 导出单个数据表结构和数据# mysqldump -h localhost -P 330...原创 2020-04-01 14:02:45 · 696 阅读 · 1 评论 -
JS中var变量声明奇怪用法
【好久没写了,水一篇】今天试着写了点前端,发现了JS中的一个奇怪用法,如下:JS中变量的奇怪地方1、函数内,不声明-用全局2、函数内,先声明-用内部3、函数内,后声明- undefined很水,没了。。。另外,JS中函数没有先声明后使用一说,在定义前前使用也可以的。...原创 2019-01-31 17:39:40 · 544 阅读 · 0 评论 -
SQL判读字段是否为空或者不存在值
coalesce(name,'')<>''#返回true 或者 falseselect * from table where coalesce(name,'')<>''原创 2018-06-12 19:37:37 · 3164 阅读 · 1 评论 -
【Python】实现汉诺塔
题目:有A,B,C三根针,将A针上N个从小到大叠放的盘子移动到C针,一次只能移动一个,小盘子必须在大盘子上面。求最少移动方案。思路:试想这个过程中,必然会经历那么一个步骤,即有一大坨N-1个盘子在B针这个中转站,而我们正将最大那个盘子(即第N个盘子)从A针移动至C针。N-1个盘子被移动了两次才能到C,那么推而广之就是F(n) = 2 * F(n-1) +1原创 2018-02-23 11:38:50 · 517 阅读 · 0 评论 -
ANSI, UTF-8, Unicode, GBK, GB2312 字符编码小结
这两天碰见一个Bug,涉及到字符编码,索性研究了下,整理出来,以便今后查阅。ASCII码,0~127,128个,这个就不用多说了,他是计算机文明的基石。但是这里面只有英文字母,其他国家如何把本国的文字输入到电脑中呢?所以基本每种语言都有自己的字符集,如汉字就有GB2312(简体中文),BIG5(繁体中文)等等。但不同的ANSI编码在不同语言之间是不兼容的,所以对于不同的操作系统之间文件的传原创 2017-12-27 19:09:51 · 772 阅读 · 0 评论 -
size_t
size _t size_t是unsigned int 为了增强程序的可移植性,便有了size_t ,不同系统上,定义size_t可能不一样。在32位系统中size_t是4字节的,在64位系统中,size_t是8字节的,这样利用该类型可以增加程序移植性。既然是无符号的,一般只能用在没有负数的地方,size_t一般用来表原创 2017-12-27 19:08:17 · 431 阅读 · 0 评论 -
C语言运算符优先级标准表
运算符优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)原创 2017-08-25 15:06:46 · 304 阅读 · 0 评论 -
#include <string> 和 #include <string.h>
#include <string> 和 #include <string.h> 区别原创 2016-04-26 13:24:42 · 10479 阅读 · 1 评论 -
String和string区别
String和string区别String和string容易混淆,区别如下:一、C++中String和string的区别 C++中只有string。 string 是C++中的字符串。string 的定义为: typedef basic_string string字符串对象是一种特殊类型的容器,专门设计来操作的字符序列。 不像传统的c-strings,只是在数组中的一个字符序列,我们称之为字符原创 2016-04-26 22:40:06 · 4168 阅读 · 0 评论 -
size_t
size _tsize_t是unsigned int为了增强程序的可移植性,便有了size_t ,不同系统上,定义size_t可能不一样。在32位系统中size_t是4字节的,在64位系统中,size_t是8字节的,这样利用该类型可以增加程序移植性。既然是无符号的,一般只能用在没有负数的地方,size_t一般用来表示一种计数,比如有多少东西被拷贝等。 例如: sizeof操作符的结果类型是siz原创 2016-04-27 09:52:59 · 302 阅读 · 0 评论 -
STL常用容器浅谈
STL常用容器浅谈 STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。下面,我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)。1、顺序性容器(1)vector vecto转载 2016-04-27 10:17:48 · 352 阅读 · 0 评论 -
C/C++字符串
C/C++字符串在C中,并没有字符串这个数据类型,而是使用字符数组来保存字符串。C字符串实际上就是一个以null(‘\0’)字符结尾的字符数组,null字符表示字符串的结束。 需要注意的是: 只有以null字符结尾的字符数组才是C字符串,否则只是一般的C字符数组。1.C语言中, 没有字符串的数据类型,使用一个以NULL(‘\0’)字符结尾的字符数组来保存字符串。 声明: char a[100原创 2016-04-27 10:26:08 · 393 阅读 · 0 评论 -
C/C++中typedef struct 和 struct的差异
typedef struct应该算是C语言设计不是很合理的地方,下面这段解释还是比较清晰的。 注意在C和C++里不同 在C中, 定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; Stu stu1; struct Student原创 2016-05-13 09:19:15 · 3492 阅读 · 0 评论 -
二叉树遍历(递归和非递归实现)
二叉树遍历(递归和非递归实现)原创 2016-05-20 11:15:06 · 591 阅读 · 0 评论 -
明明已经安装了某个模块,python报错:ImportError: No module named ***
笔者初学python,碰见一些坑,分享出来,节约大家时间:1、错误信息如下:ImportError: No module named numpy如果什么都没装,请出门右转,通过pip安装numpy即可!命令如下:pip install numpy如果连pip都没有,请先安装pip!命令如下:sudo apt-get install python-pip原创 2017-10-19 15:54:02 · 106101 阅读 · 26 评论 -
c内存布局图
下面是google上找的一张c内存布局图,我先基于这张图介绍下各个内存区域的情况1、正文(代码段):每个程序开始前,都有系统加载代码指令到这里,用于执行,当然都是机器码 2、初始化的数据段:存放已经初始化的非自动变量,如全局变量int i=0;等等 3、未初始化的数据段(BSS):存放未初始化的非自动变量,如全局变量int i;等等 4、堆:动态申请的区域,如malloc、calloc、rea原创 2016-04-22 10:44:52 · 786 阅读 · 0 评论 -
ANSI, UTF-8, Unicode, GBK, GB2312 字符编码小结
ANSI, UTF-8, Unicode, GBK, GB2312 字符编码小结原创 2015-02-09 17:35:16 · 1295 阅读 · 0 评论 -
VS 找不到“windows.h”
VS 找不到“windows.h”原创 2015-01-08 21:23:46 · 12278 阅读 · 0 评论 -
矩特征、几何矩的定义
矩物理意义矩特征主要表征了图像区域的几何特征,又称为几何矩.其中零阶矩m00反映了目标图像的面积,一阶矩反映了目标图像的质心位置,二阶矩又称惯性矩,三阶矩主要表现了目标对其均值分布偏差的一种测度,即扭曲度,四阶矩在统计学中用于描述一个分布的峰态。原创 2014-04-10 10:18:16 · 6947 阅读 · 0 评论 -
如何去除DOS回车符
Windows DOS下的换行用^M$表示,而Linux下用$表示,这就给我们带来了一点麻烦,所以我们需要去掉^M标志,解决方案:tr -d "\015" newfilename或者cat oldfilename | tr -d "\r" > newfilename原创 2014-02-12 12:11:52 · 2512 阅读 · 0 评论 -
sizeof的用法以及#pragma pack(n)命令对其的影响
sizeof() 这是初学者问得最多的一个问题,所以这里有必要多费点笔墨。让我们先看一个结构体:struct S1{char c;int i;};问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。Why为什么转载 2012-06-25 08:57:06 · 865 阅读 · 0 评论 -
null和NULL和nullptr和””区别
突然想到这个有趣的问题:C语言和C++对大小写是敏感的,也就是说null和NULL是区别对待的。NULL代表空地址,null只是一个符号。原创 2016-04-26 12:47:11 · 28642 阅读 · 6 评论