自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(157)
  • 资源 (4)
  • 收藏
  • 关注

翻译 Golang教程:(十三)Map

原文:https://golangbot.com/maps/这是本Golang系列教程的第十三篇。什么是 map?Map 是 Go 中的内置类型,它将键与值绑定到一起。可以通过键获取相应的值。如何创建 map?可以通过将键和值得类型传递给内置函数 make 来创建一个 map。语法为:make(map[KeyType]ValueType)。例如:personSalary

2017-07-16 08:04:05 17514

翻译 Golang教程:(十二)变参函数

原文:https://golangbot.com/variadic-functions/这是本Golang系列教程的第十二篇。什么是变参函数?变参函数是指可以接受可变数量的参数的函数。语法如果一个函数的最后一个参数由 ...T 表示,则该函数可以接受任意数量的类型为 T 的参数。请注意只有函数的最后一个参数才能指定为可变参数。例子你有没有想过为什么 appe

2017-07-16 08:03:14 4649 2

翻译 Golang教程:(十一)数组和切片

原文:https://golangbot.com/arrays-and-slices/这是本Golang系列教程的第十一篇。数组数组是属于同一类型的元素的集合。例如,整数 5, 8, 9, 79, 76 的集合就构成了一个数组。Go不允许在数组中混合使用不同类型的元素(比如整数和字符串)。声明数组的类型为 n[T],其中 n 表示数组中元素的个数,T 表示数组中元素的类型。

2017-07-16 08:02:21 14503

翻译 Golang教程:(十)switch 语句

原文:https://golangbot.com/switch/这是本Golang系列教程的第十篇。switch 是一个条件语句,用于将一个表达式的求值结果与可能的值的列表进行匹配,并根据匹配结果执行相应的代码。可以认为 switch 语句是编写多个 if-else 子句的惯用方式。举例是说明问题最好的方式,让我们写一个简单的程序,输入手指编号,输出对应的手指名称:)。例如 0 表示拇

2017-07-16 08:01:27 52615 3

翻译 Golang教程:(九)循环语句

原文:https://golangbot.com/loops/这是本Golang系列教程的第九篇。循环语句用于重复执行代码块。for 语句是 Go 中唯一的循环语句。Go 没有提供其他语言(如 C)中的 while 和 do while 循环语句。for 语句语法for initialisation; condition; post { }初始化语句 initialis

2017-07-15 08:34:36 20609 2

翻译 Golang教程:(八)if else 语句

原文:https://golangbot.com/if-statement/这是本Golang系列教程的第八篇。if 是一个条件语句。if 语句的语法为:if condition { }如果 condition 为 true,那么就执行 { 和 } 之间的代码。与其它语言(如C)不同,即使 {} 之间只有一条语句,{} 也是必需的。if 语句后面可以接可选的 els

2017-07-15 08:33:58 3707

翻译 Golang教程:(七)包

原文:https://golangbot.com/packages/这是本Golang系列教程的第七篇。什么是包?为什么使用包?到目前为止我们见到的 Go 程序都只有一个文件,文件中包含了一个main函数和几个其他函数。在实际中这种将所有代码都放在一个文件里的组织方式是不可行的。这样的组织方式使得代码变得无法重用和维护困难。包(package)使这种情况转危为安。包用于组织Go源代

2017-07-15 08:33:07 4945

翻译 Golang教程:(六)函数

原文:https://golangbot.com/functions/这是本Golang系列教程的第六篇。函数是完成一个特定任务的代码块。一个函数接受输入,对输入进行一些运算并产生输出。函数声明在 Go 中声明一个函数的语法为:func functionname(parametername type) returntype { //function body}函

2017-07-15 08:32:08 3191

翻译 Golang教程:(五)常量

原文:https://golangbot.com/constants/这是本Golang系列教程的第五篇。定义常量在Go中常量(constant)用来表示固定的值,比如:5,-89,"I love Go",67.89 等等。考虑如下程序:var a int = 50 var b string = "I love Go"上面的程序中, a 和 b 分别被赋值为常量

2017-07-15 08:31:27 5307

翻译 Golang教程:(四)类型

原文:https://golangbot.com/types/这是本Golang系列教程的第四篇。你可以阅读 Golang教程:(三)变量 来学习有关变量的只是。下面是 Go 支持的基本类型:boolNumeric Types int8, int16, int32, int64, intuint8,uint16,uin32,uint64, uintfloat32, fl

2017-07-14 15:18:58 4911

翻译 Golang教程:(三)变量

原文:https://golangbot.com/variables/这是本Golang系列教程的第三篇。本篇介绍Golang中的变量。你可以阅读 [Golang教程:(二)Hello World](http://blog.csdn.net/u011304970/article/details/74783686) 来学习如何建立 Go 工作空间以及编写和运行 hello world 程序。#什么是变量

2017-07-14 15:16:03 4298 1

翻译 Golang教程:(二)Hello World

原文:https://golangbot.com/hello-world/这是本Golang系列教程的第二篇。请阅读 [Golang教程:(一)介绍和安装](http://blog.csdn.net/u011304970/article/details/74783552) 来了解什么是Golang以及如何安装它。除了亲自写代码以外没有更好的方式来学习一门新的编程语言。在这篇教程中我们将开始编写我们的第一个程序

2017-07-14 15:09:44 5086

翻译 Golang教程:(一)介绍和安装

原文:https://golangbot.com/golang-tutorial-part-1-introduction-and-installation/这是本Golang系列教程的第一篇。什么是GolangGolang 又称为 Go,是由 Google 开发的一种开源的、编译型的、静态类型的编程语言。Golang 的主要目的是使开发高可用性和高扩展性的Web应用程序变得简单。为什么选择Golan

2017-07-14 14:09:43 5567

翻译 Golang教程目录

Golang系列教程目录

2017-07-14 13:58:36 6120

翻译 Golang教程:(二十)并发介绍

原文:https://golangbot.com/concurrency/欢迎来到Golang系列教程的第二十篇。Go是并发语言,而不是并行语言。在讨论Go并发性之前,我们必须首先了解什么是并发,以及并发与并行的区别。什么是并发并发(concurrency)是指一次处理大量事情的能力。让我们用一个例子来说明。假设一个人喜欢慢跑。在早上的慢跑中,他的鞋带开了。现在他停下来系鞋带,

2017-07-14 08:21:31 4323

原创 Go批量修改文件名

工作中遇到了批量修改文件名的情况,为此写了个小程序,以供日后方便。代码如下:package mainimport ( "flag" "fmt" "os" "path/filepath")func main() { // 解析命令行参数 var dir string flag.StringVar(&dir, "d", "", "director

2017-07-07 09:37:08 2949

原创 FreeSWITCH 视频会议常用命令

列出所有会议conference list列出会议的所有参与人conference [conference-id] list列出会议所有可用布局conference [conference-id] vid-layout list改变画面布局conference [conference-id] vid-layout [layout-name]更改角色在布局中的位置conference [confere

2017-07-05 14:43:15 2354

原创 Jenkins 搭建C++持续集成环境

简介本文主要介绍如何通过 Jenkins 搭建 C++的持续集成环境。最后达到的效果是每天00:00 - 08:00之间构建、测试和打包一次工程。开发环境为 VS2015,测试工具为 CppUnit,打包工具为 Inno Setup。本例的 Jenkins 版本为 Jenkins2.60.1建立工程新建空白解决方案,命名为 Calculator。勾选 [新建 GIT 存储库]。建立开发项目新建控制台

2017-07-04 09:33:39 27536 1

原创 CppUnit 入门

CppUnit 是一个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就是对单元测试进行管理,并可进行自动化测试。本文主要介绍如何利用 CppUnit 进行单元测试。

2017-07-01 09:35:38 5282 2

原创 Thrift 入门教程

简介Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。Thrift最初由face

2017-06-17 22:49:41 15095 4

原创 FFmpeg 利用 SDL2 播放视频

使用 SDL2 渲染屏幕的主要流程:Created with Raphaël 2.1.0初始化SDL创建窗口创建Renderer创建TextureSDL_UpdateTextureSDL_RenderCopySDL_RenderPresent示例:extern "C"{#include "libavcodec\avcodec.h"#include "libavformat\avformat.h

2017-06-12 17:56:01 1493 1

原创 FFmpeg 读取视频流并保存为BMP

extern "C"{#include "libavcodec\avcodec.h"#include "libavformat\avformat.h"#include "libswscale\swscale.h"#include "libavutil\imgutils.h"}#include #include #include void SaveFrame(AVFrame

2017-06-12 12:21:15 8129 2

原创 VS2013编译FFmpeg

下载 FFmpeg 源码下载 MinGW Installer,安装后点击运行,勾选以下几项:mingw-developer-toolkitmingw32-basemingw32-gcc-g++msys-base然后在 Installation 菜单下点击 Apply Changes。将 [MinGW安装目录]\bin 和 [MinGW安装目录]\msys\1.0\bin 加入环境变量,[Mi

2017-06-10 14:38:18 580

原创 C++开发Office插件:实现Word插件

简介本文以Word插件为例,介绍如何使用C++实现一个完整的Office插件。简单来说Office插件就是一个实现了IDTExtensibility2和IRibbonExtensibility两个接口的COM组件。IDTExtensibility2提供了Office插件接口,IRibbonExtensibility提供了Ribbon界面接口。下面详细介绍实现步骤。本例的开发环境为:Win8 + VS

2017-06-08 08:53:04 21161 14

原创 Go标准容器之Ring

简介Go的标准包Container中包含了常用的容器类型,包括conatiner/list,container/heap,container/ring,本篇讲解container/ring的使用。ring包ring包提供了环形链表的操作。它仅导出了一个类型,Ring:// Ring表示环形链表中的元素。type Ring struct { Value interface{} // Valu

2017-06-01 12:59:38 4363

原创 Go标准容器之Heap

简介本篇主要介绍如何使用container/heap包实现最小堆。关于堆的概念请参阅相关资料。heap包container/heap包仅仅提供了最小堆的操作,没有提供堆的数据结构,堆的数据结构必须我们自己实现。heap包提供了一个heap.Interface接口来作为堆的操作(heap包提供)和堆的数据结构(我们自己实现)之间的桥梁,堆的数据结构必须满足此接口:container/heap−−−−−

2017-06-01 09:27:55 2949 4

原创 PostgreSQL 远程连接设置

修改 pg_hba.conf,在host all all 127.0.0.1/32 md5下面添加一行host all all 0.0.0.0/0 md5修改 postgresql.conf,将listen_addresses = 'localhos

2017-05-31 18:05:09 1081

原创 Python 使用全局变量

今天在写以下Python代码时出现了问题。该段代码根据一些URL下载视频:#coding=utf-8def save_case_infos(case_urls): for case_url in case_urls: # some download code ... # 打印已下载的视频个数 # 希望访问全局变量 case_total_num

2017-05-31 16:13:24 85961 2

原创 Go标准容器之List

简介Go的标准包container中包含了常用的容器类型,包括conatiner/list,container/heap,container/ring。本篇介绍conatiner/list。conatiner/list实现了一个双向链表。使用起来与其他语言的动态列表非常相似,3秒钟便可入门。3秒钟入门package mainimport ( "container/list" "fmt

2017-05-27 17:30:46 29593

原创 Python遍历文件夹

os标准包里提供的walk()函数用来遍历文件夹和文件夹中的文件:os−−\underline{os}// top 为要遍历的目录,遍历时将该目录包含在遍历范围之内// topdown指明先遍历当前目录(自上向下),还是先遍历当前目录的子目录(自下向上)// followlinks指明是否遍历目录链接(快捷方式)// 返回值为一个三元组:// dirpath, dirnames, file

2017-05-27 15:09:41 841

原创 Python通过psycopg2操作PostgreSQL

debian安装PostgreSQL操作系统为:Debian GNU/Linux 8.2 (jessie)执行以下命令安装PostgreSQL$ apt-get install postgresql安装好之后,PostgreSQL会创建一个名为postgres的系统用户,以及一个同样名字的数据库管理员角色,以及一个同样名字的数据库。通过cat /etc/passwd列出系统中所

2017-05-27 09:31:58 33517

原创 PostgreSQL入门

说明本篇博文假设已经安装和配置好了PostgreSQL,如果没有安装配置好,请见我的另一篇博文Debian8下安装配置PostgreSQL。这里采用的操作系统为:Debian GNU/Linux 8.2 (jessie)首先,需要通过su命令切换到PostgreSQL为我们创建的系统账户:# su postgres创建数据库使用createdb命令创建建数据库:$ createdb mydb删除数

2017-05-27 08:35:55 445

原创 Debian8下安装配置PostgreSQL

简介PostgreSQL根据不同的操作系统,安装的方法也不同,这里采用的操作系统为:Debian GNU/Linux 8.2 (jessie)如果是其他操作系统,请到PostgreSQL官方网站查找相应的安装方法。Debian下安装PostgreSQL执行以下命令安装PostgreSQL$ apt-get install postgresql安装好之后,PostgreSQL会创建一个名为postg

2017-05-27 07:52:55 3430

原创 Go利用net/http包搭建Web服务器

简介利用Go的标准包net/http可以很方便的搭建服务器。实际上只需要一个函数和一个接口:net/http−−−−−−−\underline{net/http}package http// 建立服务器,address为服务器地址,比如:"localhost:8000"// h 是处理请求的接口,类型为 Handler// 该函数将一直运行,除非有错误发生,则返回error,返

2017-05-26 12:39:46 3755

原创 Go Timer的使用

Go的标准包time里提供了两种定时器,一种是标准定时器,另一种是循环定时器。标准定时器标准定时器在到达指定时间时仅触发一次。time包提供了若干函数和类型来表示这种定时器:// After() 在经过时长 d 之后,向返回的只读信道发送当前时间func After(d Duration) chan Time// Timer 表示仅触发一次事件的定时器type Timer st

2017-05-25 17:03:22 8274 1

原创 Go并发:利用sync.WaitGroup实现协程同步

经常看到有人会问如何等待主协程中创建的协程执行完毕之后再结束主协程,例如如下代码:package mainimport ( "fmt")func main() { go func() { fmt.Println("Goroutine 1") }() go func() { fmt.Println("Goroutine 2") }

2017-05-25 09:28:48 18770 5

原创 Go并发:利用sync.Once延迟加载

总所周知,延迟加载会提高程序的加载速度,有时还能够节省内存。比如如下程序:package mainimport ( "image")var icons map[string]image.Image // 保存所有的图标func Icon(name string) image.Image { if icons == nil { // 延迟加载 loadIcons(

2017-05-25 08:49:56 2328

原创 Go生成随机数

Go的math/rand包提供了生成随机数的API,重要的API如下:// 该函数设置随机种子// 若不调用此函数设置随机种子,则默认的种子值为1,由于随机算法是固定的,// 如果每次都以1作为随机种子开始产生随机数,则结果都是一样的,因此一般// 都需要调用此函数来设置随机种子,通常的做法是以当前时间作为随机种子// 以保证每次随机种子都不同,从而产生的随机数也不通// 该函数协程安全

2017-05-25 07:54:24 64071

原创 Go 基于Token解析JSON

Go 基于Token解析JSON

2017-05-24 18:49:30 2125

原创 Go error 接口

Go的标准库函数在发生错误时会返回error类型,比如常用的os.Open函数用来打开文件,错误时返回error:func Open(name string) (*File, error)那么究竟什么是error类型呢?其实很简单,error是一个接口,该接口只声明了一个方法Error(),返回值是string类型,用以描述错误:type error interface { Error()

2017-05-24 14:09:18 3041

Cef3博文配套源代码

Cef3博文的配套源代码,注意其中没有放 Cef3 库的资源(因为太大了...)。建议配合博文一起查看。博文地址:http://blog.csdn.net/u011304970/article/details/77592775

2017-12-28

CppUnit入门代码

CppUnit 入门的代码,仅供参考。编译时请指定编译版本为 Debug|x86

2017-07-01

C++实现Office插件

纯C++实现Office插件

2017-06-08

udns-0.0.9-win32.zip

udns的VS2015工程

2017-02-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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