自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 string和[]byte转换时都是先复制

借鉴 https://talkgo.org/discuss/2018-05-22-go-string-to-byte-slice/ 代码 import "fmt" func TestString() { s:="123" ps:=&s b:...

2020-04-11 16:43:54 16 0

原创 golang元转分、分转元

参考 https://godoc.org/github.com/shopspring/decimal#example-NewFromFloat 代码 package digitalConver import ( "fmt" "github.com/shopspr...

2020-04-11 15:15:13 97 0

原创 使用json.RawMessage处理api返回时部分字段类型不定的情况

背景 当遇到请求的api返回数据结构中,部分字段的类型不能确定时,可以在定义结构体该字段时,指定其类型为json.RawMessage, 这样当从api取返回数据时,json.Unmarshal后,该字段仍然是[]byte类型,而我们可以对这一个字段再做针对性的处理。 /* { “type”:“F...

2020-04-11 14:02:58 30 0

原创 simpleJson处理api返回数据结构不确定的情况

SimpleJson包的简单使用代码展示借鉴 代码展示 下面展示一些 内联代码片。 // A code block package jsonPrac import ( "fmt" simplejson "github.com/bitly/go-simplejso...

2020-04-09 20:51:53 56 0

原创 01背包问题-回溯法

背景 0-1背包是非常经典的算法问题,很多场景都可以抽象成这个问题模型。这个问题的经典解法是动态规划。 不过还有一种简单但没有那么高效的解法,这里用的回溯算法。 0-1背包问题有很多变体,我这里介绍一种比较基础的。我们有一个背包,背包总的承载重量是Wkg。现在我们有n个物品,每个物品的重量不等,...

2019-07-11 19:55:48 1132 0

原创 八皇后问题

背景 在我们的一生中,会遇到很多重要的岔路口。在岔路口上,每个选择都会影响我们今后的人生。有的人在每个岔路口都能做出最正确的选择,最后生活、事业都达到了一个很高的高度;而有的人一路选错,最后碌碌无为。如果人生可以量化,那如何才能在岔路口做出最正确的选择,让自己的人生“最优”呢? 我们可以借...

2019-07-11 16:41:08 299 0

原创 字符串匹配

主串和模式串 在字符串A中查找字符串B,那字符串A就是主串,字符串B就是模式串。 我们把主串的长度记作n,模式串的长度记作m。因为我们是在主串中查找模式串,所以n>m。 几种单模式串匹配算法 BF(暴力)算法 RK算法 BM算法 KMP算法 1. BF(Brute Force)算法 ...

2019-06-27 19:44:14 906 0

原创 二分查找

一、什么是二分查找? 二分查找针对的是一个有序的数据集合,每次通过跟区间中间的元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间缩小为0 。 二、过程分析 时间复杂度 假设数据大小是n,每次查找后数据都会缩小为原来的一半,最坏的情况下,直到查找区间被缩小为空,才停止。所...

2019-05-07 15:26:35 566 0

原创 golang测试

Go 程序编写三类测试,即:功能测试(test)、基准测试(benchmark,也称性 能测试),以及示例测试(example)。 测试源码文件的主名称应该以被测源码文件的主名称为前导,并且必须以“_test”为后缀。 对于功能测试函数来说,其名称必须以Test为前缀,并且参数列表中只应有一个*...

2019-04-04 15:24:53 244 0

转载 Golang的Panic和Recover

原文来自:https://golangbot.com/panic-and-recover/ 什么是 panic? 在 Go 语言中,程序中一般是使用错误来处理异常情况。对于程序中出现的大部分异常情况,错误就已经够用了。 但在有些情况,当程序发生异常时,无法继续运行。在这种情况下,我们会使用&nbs...

2019-03-26 11:49:17 711 0

原创 container包

container/list 链表一个很大的优点:插入快,删除快。而数组的有优点就是遍历快,索引快。 故链表适合于那些频繁插入删除操作的场景。数组适合于那些多次查询的场景。 golang语言的链表实现在标准库container/list中。 使用案例:作为构造队列、栈的基础数据结构。 ...

2019-03-21 16:53:31 352 0

原创 map-字典的底层、约束和操作

Go 语言的字典类型其实是一个哈希表(hash table)的特定实现,它能存储的不是单一值的集合,而是键-元素对的集合。在这个实现中,键和元素的最大不同在于,前者的类型是受限的,而后者却可以是任意类型的。 带着问题 map的底层结构是什么样的? map的键值映射过程? 键不能是哪些类...

2019-03-19 01:42:39 134 0

转载 golang底层数据类型实现原理

虽然golang是用C实现的,并且被称为下一代的C语言,但是golang跟C的差别还是很大的。它定义了一套很丰富的数据类型及数据结构,这些类型和结构或者是直接映射为C的数据类型,或者是用C struct来实现。了解golang的数据类型和数据结构的底层实现,将有助于我们更好的理解golang并写出...

2019-03-17 23:04:04 538 0

原创 unsafe.sizeof()

描述 // Sizeof takes an expression x of any type and returns the size in bytes // of a hypothetical variable v as if v was declared via var v = x. /...

2019-03-17 22:24:26 721 0

原创 flag包

命令源码文件如何接收参数? Go 语言标准库中有一个代码包专门用于接收和解析命令参数,即flag包。 使用案例 根据运行程序时给定的参数问候某人 package main import ( "flag" "fmt&...

2019-03-17 18:34:44 297 0

原创 select块

select块是为channel特殊设计的语法,它和switch语法非常相近。分支上它们都可以有多个case块和做多一个default块,但是也有很多不同. 特性 包含默认分支和候选分支 候选分支中的case表达式都会在该语句执行开始时先被求值,并且求值的顺序是依从代码编写的顺序从上到下的 se...

2019-03-17 15:44:23 79 0

原创 golang概述

概述 一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言 常识 每个go源代码文件的开头都是一个package声明,表示该go代码所属的包;包是go语言中最基本的分发单位,也是工程管理中依赖关系的体现。要生成go可执行程序,必须建立一个名为main的package,并且在该packa...

2019-03-17 14:52:08 106 0

原创 通道(channel)

描述 主要用于多个goroutine间传递数据.一个通道相当于一个先进先出(FIFO)的队列. channel用来在协程[goroutine]之前传递数据,准确的说,是用来传递数据的所有权。 一个设计良好的程序应该确保同一时刻channel里面的数据只会被同一个协程拥有,这样就可以避免并发带来的...

2019-03-17 14:32:02 394 1

原创 切片(slice)

slice 数据结构 type slice struct { array unsafe.Pointer //指向底层数组的指针 len int //切片中元素个数 cap int //切片总容量 } golang 源码 基于数组或者sli...

2019-03-17 12:53:04 165 0

转载 sync.Map

原文地址:The new kid in town — Go’s sync.Map 对Go1.9中新加入的类型sync.Map的学习和探索性分析。 Go1.9出来后,我就迫不及待的开始尝试接触sync包中新加入的sync.Map容器了。首先,为什么要将它加入到标准库中?它又应该在哪里使用?不幸的是,...

2019-03-17 11:06:04 852 0

转载 【转载】csdn文章如何转载?

转载地址: https://blog.csdn.net/Michael753951/article/details/70307704 个人blog地址:http://yaoyl.cn/csdn_ru_he_zhuan_zai/ 本来我一直不会在csdn中转载他人的文章的,知道有一次在网上看到一篇...

2018-09-25 15:52:21 122 0

转载 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别

编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。 优点:编译器一般会...

2017-04-25 11:18:39 422 0

原创 python爬取静态和动态网页

python爬取静态网页1,网上关于静态网页的爬取例子有很多。自己写的一个python爬百度视频搜索网页的代码:#!/usr/bin/python #coding=utf-8import sys import urllib import urllib2 from bs4 import Beaut...

2017-01-19 17:49:53 6842 0

原创 python 调用优酷关键词搜索视频api

1,第一步注册账号,申请appKey就不说了,根据优酷开放平台的新手指南. 2,在优酷开放平台找到通过关键词搜索视频,查看调用该api需要的系统参数和业务参数。 其它参数都还好,我在调用时碰到的难搞参数有: a,timestamp,表示时间戳。 python中用time.time()来返回...

2017-01-19 16:08:05 1551 2

原创 linux初学使用技巧

linux初学目录 基本操作 文件目录 使用经验积累 基本操作 {###1}1 2 3 4 5 6我是谁

2017-01-05 11:06:04 433 0

转载 Python 之ConfigParser

一、ConfigParser简介 ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。 1: [db] 2: db_host = 127.0.0.1 ...

2017-01-04 21:57:05 491 0

转载 每天一个python模块之Requests

因为Python有用的模块太多了。那么,就从这个最长用到的Requests模块开始吧!Requests模块是一个用于网络访问的模块,其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能,那为什么Requests模块就能够脱引而出呢?可以...

2017-01-04 21:54:53 761 1

原创 markdwon 的表格内容含有字符“|”时

比如有如下表格: name age sex interests zcm 25 male 篮球,游戏,聚餐 如果我想把篮球,游戏,聚餐改成篮球|游戏|聚餐时怎么办呢? 如果直接写字符“|”,会把“|”当初表格。 解决办法: 把要写入的内容中的字符”|”替换成|,注...

2017-01-04 21:35:55 554 0

转载 python中打开含中文的文件路径出错的情况

在python中读写带中文的路径文件时,报错的解决方法:#-*- coding: utf-8 -*- a = 'D:\\中文.txt' f = open(a.decode('utf8'))windows默认是gbk的编码 所以 文件名的编译都是gbk的。 ...

2017-01-04 21:20:24 5676 0

原创 linux下输出文件夹下所有文件夹名称并重定向

linux下仅输出文件夹名称并重定向输出 仅显示文件夹 比如列出文件夹/root/bin/下的所有文件夹 命令1 ls -l /root/bin/ | grep ^d仅显示文件夹名称 比如列出文件夹/root/bin/下的所有文件夹名称 命令2 ls -l /root/bin/ |...

2017-01-04 20:59:35 3417 0

转载 Windows上使用gitbook制作电子书

转载地址:http://blog.csdn.net/lance__xu/article/details/38279265 0. 前言 第一次在windows上使用gitbook制作电子书,在网上搜了好多资料,自己亲手试了下并整理如下。 1. 准备工具 ...

2016-12-20 10:15:35 2406 0

转载 c++11后stl容器

 C++11 STL中的容器 ================================================== 一、顺序容器: vector:可变大小数组; deque:双端队列; list:双向链表; forward_list:单向链表; array:...

2016-10-06 21:15:03 518 0

转载 C++中的转义序列

转载地址:http://yongchunxiaofen.top/2016/05/31/Escape-character/ C++中的转义序列 两类字符不能直接使用: 一类是不可打印字符,例如退格等。因为没有可视的图符。另一类是有特殊含义的字符(单引号,双引号,问号,反斜线)等...

2016-10-06 20:47:16 1702 0

转载 浅谈C/C++的浮点数在内存中的存储方式

转载地址:http://www.cnblogs.com/dolphin0520/archive/2011/10/02/2198280.html  C/C++浮点数在内存中的存储方式        任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为...

2016-10-06 20:02:21 264 0

转载 线程中 CloseHandle()函数的使用

CloseHandle()函数的使用?? 很多程序在创建线程都这样写的: ............ ThreadHandle = CreateThread(NULL,0,.....); CloseHandel(ThreadHandle ); 。。。。。 这不是刚好创建又关闭了吗...

2016-10-04 19:26:42 357 0

转载 c++实现多线程简单例子

C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面就此简单的讲一下:   创建线程的函数 HANDLE CreateThread(      LPSECURITY_ATTRIBUTES lpThreadAttribut...

2016-10-03 20:22:17 3963 0

转载 DLL动态链接库的工作原理

转载地址:http://blog.csdn.net/woshinia/article/details/7919281#comments "动态链接"这几字指明了DLLs是如何工作的。对于常规的函数库,链接器从中拷贝它需要的所有库函数,并把确切的函数地址传送给调用这些函数的...

2016-10-03 20:19:28 4238 0

转载 Socket原理与编程基础

转载地址:http://acm.tzc.edu.cn/acmhome/projectList.do?method=projectNewsDetail&nid=2 一、Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关...

2016-10-03 20:16:26 588 0

转载 网络编程学习笔记一:Socket编程

转载地址:http://blog.csdn.net/gneveek/article/details/8699198 “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值,那网络中进程之...

2016-10-03 20:14:50 613 0

转载 哈弗曼树

转载地址:http://blog.csdn.net/shuangde800/article/details/7341289 一、哈夫曼树的概念和定义   什么是哈夫曼树? 让我们先举一个例子。 判定树:         在很多问题的处理过程中,需要进行大量的条件判断...

2016-09-28 22:10:42 649 0

提示
确定要删除当前文章?
取消 删除