自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 一步步提升Go语言生成随机字符串的效率

假如我们要生成一个固定长度的随机字符串,包含大小写字母,没有数字,没有特殊字符串,那么我们怎么做呢?需要怎样优化,才会更简单,更高效?在最终的方案之前,我们看看最常见的写法是怎样的,然后是如何一步步演进到最终的高效率方案的。好吧,先看下最原始的方案。常见做法(Runes)func init() { rand.Seed(time.Now().UnixNano())}va...

2019-12-25 21:44:55 497 4

转载 golang几种post请求方式

get请求get请求可以直接http.Get方法,非常简单。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 funchttpGet() { resp, err := http.Get("http://www.01ha...

2019-07-19 16:32:57 3044 1

转载 Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data

在常见业务开发中,POST请求常常在这些地方使用:前端表单提交时、调用接口代码时和使用Postman测试接口时。我们下面来一一了解:application/x-www-form-urlencoded表单代码:<form action="http://localhost:8888/task/" method="POST">First name: <input typ...

2019-07-19 16:25:48 1896

转载 golang 几种字符串的连接方式

最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现。实现方法1. 直接使用运算符func BenchmarkAddStringWithOperator(b *testing.B) { hello := "hello" world := "world" for i := 0; i...

2019-07-19 16:22:25 194

转载 consul 变更端口

1. 打开consul.exe的根目录 ,在次目录下创建一个 basic.json 的文本 (具体步骤是新建一个txt文本,把名字以及后缀改为 basic.json),以及一个data命名的空文件夹.2. 使用文本编辑器,把以下代码拷贝进去 (代码中的http就是你的服务端口,在这里我的服务端口是9500){ "ports": { "server": 9300, ...

2019-05-25 00:11:48 4249

转载 golang 后台进程的启动和停止

启动命令我们先来个非后台运行的启动命令func init() { startCmd := &cobra.Command{ Use: "start", Short: "Start Gonne", Run: func(cmd *cobra.Command, args []string) { start...

2019-05-24 15:38:37 8549

转载 swoole的tideways_xhprof使用

源起最近基于swoole的一个mvc开发框架做了一个项目,完成之后对其中一个接口例行做了一次压测,本机上得到qps是3600,由于接口功能比较简单,所以又花了点时间用beego和spring boot实现了相同的功能,也压测了一下,最终对比如下:swoole: 3600qpsbeego: 2200 qpsspring: 600qps(ps: 无意比较优劣,应该是用...

2019-05-24 14:35:57 1418

转载 Golang并发:并发协程的优雅退出

goroutine作为Golang并发的核心,我们不仅要关注它们的创建和管理,当然还要关注如何合理的退出这些协程,不(合理)退出不然可能会造成阻塞、panic、程序行为异常、数据结果不正确等问题。这篇文章介绍,如何合理的退出goroutine,减少软件bug。goroutine在退出方面,不像线程和进程,不能通过某种手段强制关闭它们,只能等待goroutine主动退出。但也无需为退出、关闭gor...

2019-05-15 16:26:06 1570

转载 Go语言内幕(1):主要概念与项目结构

这个系列博客主要为那些对 Go 基本知识已经有一定了解,又希望对其内部细节进行更深一步地探索的人准备的。今天这一篇主要分析 Go 源代码的基本结构以及 Go 编译器的某些内部细节。读完这篇博客后,你会得到下面三个问题的答案:1. Go 源代码结构是什么样子的?2. Go 编译器是如何工作的?3. Go 语言中的结点树的基本结构是什么样的?让我们开始吧每当开始学习一门新编程语言...

2019-05-15 10:07:18 125

转载 golang 后台进程的启动和停止

不想再像java或者其他语言那样为了操作后台程序写各种脚本的话,这篇文章值得你一看启动命令和上一篇文章一样,我们先来个非后台运行的启动命令 func init() { startCmd := &cobra.Command{ Use: "start", Short: "Start Gonne", Run: func(...

2019-05-15 09:40:58 6001

原创 win10下go mod配置

这是因为获取golang.org/x/...时需要翻墙,而我这里没有翻墙,不过没关系,设置下代理即可:// bash mac export GOPROXY=https://goproxy.io// powershell windows $env:GOPROXY = "https://goproxy.io"然后再当前目录下用powershell执行命令:go mod d...

2019-05-14 17:21:40 9116

转载 go module 安装不了golang.org时的处理方式记录

go: golang.org/x/sys@v0.0.0-20180905080454-ebe1bf3edb33: unrecognized import path "golang.orgnrecognized import path "golang.org/x/sys" (https fetch: G1: dial tcp 216.239.37.1:443: conneet https:/...

2019-04-19 06:23:01 1937

转载 Go Modules

版本控制和语义化版本包的版本控制总是一个包管理器绕不开的古老话题,自然对于我们的go modules也是这样。我们将学习一种新的版本指定方式,然后深入地探讨一下golang官方推荐的semver即语义化版本。控制包版本在讨论go get进行包管理时我们曾经讨论过如何对包版本进行控制(文章在此),支持的格式如下:vX.Y.Z-pre.0.yyyymmddhhmmss-abcde...

2019-02-10 12:46:39 2183

原创 xorm 使用

库安装go get github.com/go-xorm/xorm go get github.com/go-xorm/cmd/xormcmd安装报错:这两个依赖的源代码在github上都有,通过git clone把源代码拉取拉下,然后把源代码的目录改成与import path相同就可以正常使用了。https://github.com/GoogleClou...http...

2019-01-11 10:07:00 471

转载 为什么Go是一种设计糟糕的编程语言

 好吧,我承认这个标题有点放肆。我多告诉你一点:我爱肆意妄言的标题,它能够吸引注意力。不管怎样,在这篇博文中我会试图证明 Go 是一个设计得很糟糕的语言(剧透:事实上它是)。我已经摆弄 Go 有几个月了,而且,我想我在六月某个时候运行了第一个 helloworld 程序。虽然我的数学不太好,但在那之后已经有四个月了,并且我的 Github 上已经有了几个 package。不必多说,我仍完全没有...

2019-01-11 07:54:17 895

转载 支付宝内部功能调用APP的said说明

 追加:支付宝收款码alipayqr://platformapi/startapp?saId=20000123 微信扫一扫weixin://scanqrcode(跳转微信扫一扫)支付宝扫一扫alipayqr://platformapi/startapp?saId=10000007(跳转支付宝扫一扫)追加:如果希望扫一扫和二维码集成,点击一个按钮,立即就跳出支付页面...

2018-12-25 00:04:59 9899 3

转载 支付宝 二维码/转账码/生成方式,突破二维码生成数量的限制

 支付宝个人二维码生成限制之后,一天就20张.大家都在找突破方法.这里分享一下目前的几种方式.Pxpay 个人收款开源项目:https://gitee.com/DaLianZhiYiKeJi/xpay支付宝收款的几种方式:通过xposed 设置金额/备注.然后可以得到一张二维码.这是传统的方式. 通过支付宝的接口,自己拼接字符串.然后根据字符串生成一个二维码对于对于传统方式.支...

2018-12-24 23:55:45 8357 2

转载 go语言与MySQL数据库(连接池)

 导入包:import "database/sql"import _ "github.com/go-sql-driver/mysql"使用sql.Open函数创建一个连接池对象,不是单个连接。在open的时候并没有去连接数据库,只有在执行query、exce方法的时候才会去实际连接数据库。在一个应用中同样的库连接只需要保存一个sql.Open之后的db对象就可以了,不需要多次ope...

2018-12-17 22:04:43 976

转载 Go 系列教程-11 文件

 文件读取是所有编程语言中最常见的操作之一。本教程我们会学习如何使用 Go 读取文件。本教程分为如下小节。将整个文件读取到内存 使用绝对文件路径 使用命令行标记来传递文件路径 将文件绑定在二进制文件中 分块读取文件 逐行读取文件将整个文件读取到内存将整个文件读取到内存是最基本的文件操作之一。这需要使用 ioutil 包中的 ReadFile 函数。让我们在 ...

2018-12-15 15:11:38 346

转载 Go 系列教程-10 反射

  反射是 Go 语言的高级主题之一。我会尽可能让它变得简单易懂。本教程分为如下小节。什么是反射? 为何需要检查变量,确定变量的类型? reflect 包 reflect.Type 和 reflect.Value reflect.Kind NumField() 和 Field() 方法 Int() 和 String() 方法 完整的程序 我们应该使用反射吗...

2018-12-15 15:10:29 223

转载 Go 系列教程-9 头等函数

  什么是头等函数?支持头等函数(First Class Function)的编程语言,可以把函数赋值给变量,也可以把函数作为其它函数的参数或者返回值。Go 语言支持头等函数的机制。本教程我们会讨论头等函数的语法和用例。匿名函数我们来编写一个简单的示例,把函数赋值给一个变量。package mainimport ( "fmt")func main...

2018-12-15 15:09:21 236

转载 Go 系列教程-8 错误处理

Go 系列教程 —— 30. 错误处理 什么是错误?错误表示程序中出现了异常情况。比如当我们试图打开一个文件时,文件系统里却并没有这个文件。这就是异常情况,它用一个错误来表示。在 Go 中,错误一直是很常见的。错误用内建的 error 类型来表示。就像其他的内建类型(如 int、float64 等),错误值可以存储在变量里、作为函数的返回值等等。示例现在我们开始编写一个...

2018-12-15 15:05:49 481

转载 Go 系列教程-7 面向对象

Go 系列教程 —— 26. 结构体取代类 Go 支持面向对象吗?Go 并不是完全面向对象的编程语言。Go 官网的 FAQ 回答了 Go 是否是面向对象语言,摘录如下。可以说是,也可以说不是。虽然 Go 有类型和方法,支持面向对象的编程风格,但却没有类型的层次结构。Go 中的“接口”概念提供了一种不同的方法,我们认为它易于使用,也更为普遍。Go 也可以将结构体嵌套使用,这与子类化...

2018-12-14 15:25:45 303

转载 Go 系列教程-6 多线程 并发

Go 系列教程 —— 20. 并发入门Go 是并发式语言,而不是并行式语言。在讨论 Go 如何处理并发之前,我们必须理解何为并发,以及并发与并行的区别。并发是什么?并发是指立即处理多个任务的能力。一个例子就能很好地说明这一点。我们可以想象一个人正在跑步。假如在他晨跑时,鞋带突然松了。于是他停下来,系一下鞋带,接下来继续跑。这个例子就是典型的并发。这个人能够一下搞定跑步和系鞋带两件事...

2018-12-14 15:21:09 1288

转载 Go 系列教程-5 基础知识

Go 系列教程 —— 15. 指针什么是指针?指针是一种存储变量内存地址(Memory Address)的变量。如上图所示,变量 b 的值为 156,而 b 的内存地址为 0x1040a124。变量 a 存储了 b 的地址。我们就称 a 指向了 b。指针的声明指针变量的类型为 *T,该指针指向一个 T 类型的变量。接下来我们写点代码。package maini...

2018-12-13 20:09:33 402

转载 Go 系列教程-4 基础知识-数据类型

Go 系列教程 —— 11. 数组和切片数组数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型)数组的声明一个数组的表示形式为[n]T。n表示数组中元素的数量,T代表每个元素的类型。元素的数量n也是该类型...

2018-12-13 20:00:57 393

转载 Go 系列教程-3 基础知识-语法

Go 系列教程 —— 8. if-else 语句if 是条件语句。if 语句的语法是if condition { }如果condition为真,则执行{和}之间的代码。不同于其他语言,例如 C 语言,Go 语言里的{ }是必要的,即使在{ }之间只有一条语句。if 语句还有可选的else if和else部分。if condition {...

2018-12-13 19:57:15 318

转载 Go 系列教程-2 基础知识

Go 系列教程 —— 6. 函数(Function)函数是什么?函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。函数的声明在 Go 语言中,函数声明通用语法如下:func functionname(parametername type) returntype { // 函数体(具体实现的功能)}函数的声明以关键...

2018-12-13 19:54:19 294

转载 Go 系列教程-1 基础知识

 变量是什么变量指定了某存储单元(Memory Location)的名称,该存储单元会存储特定类型的值。在 Go 中,有多种语法用于声明变量。声明单个变量var name type 是声明单个变量的语法。package mainimport "fmt"func main() { var age int // 变量声明 fmt.Println("my a...

2018-12-13 00:08:12 215

转载 探索 Go 中的错误处理模式

当你学习一种新的编程语言时,可能会存在一个挫败期,就是当你无法使用更熟悉的语言来表达想法的时候。你很自然的想知道为什么语言要设计成这样,很容易误认为(当表达想法遇到困难时)这是语言设计者的失误。这种推理可能会导致你以一种非惯用的方法使用一种语言。一个挑战我自己观念的内容是如何在 Go 中处理错误。概括如下:Go 中的错误是一个实现了 error 接口(实现了 Error() 函数)的任意类...

2018-12-12 21:55:23 262

转载 在 Go 语言中使用 Log 包

Linux 在许多方面相对于 Windows 来说都是独特的,在 Linux 中编写程序也不例外。标准输出,标准 err 和 null devices 的使用不仅是一个好主意,也是一个原则。如果您的程序将记录日志信息,则最好遵循目标约定。这样,您的程序将兼容所有 Mac/Linux 工具和托管环境。Go 在标准库中有一个 log 包和 logger 类型。使用 log 包将为您提供成为优秀公民...

2018-12-12 21:49:18 735

转载 Lumen使用Redis

1. 安装扩展要使用redis必须安装两个扩展 composer require predis/predis composer require illuminate/redis12(PS:官方上有要求安装两个安装的版本为predis/predis (~1.0)和illuminate/redis (5.2.*),因为目前安装的最新版本就是这两个版本,故使用compose的时候没加版本号,如果你安装...

2018-03-28 21:03:40 4092

原创 部署PHP服务器步骤记录(Centos系统)

登陆后运行:screen -S lnmp    如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装下载并安装LNMP一键安装包:安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar z

2015-06-03 13:41:49 462

原创 Centos系统相关知识整理

1: man 在线查询 man ls2: ls 显示本目录下的文件及目录ls -a 显示本目录下的所有文件及目录(包括隐藏目录和文件)ls -l 显示本目录下所有文件的属性ls -l | grep ^d 只显示目录名ls -l | grep ^f 只显示文件名ls -G 以颜色显示目录名和文件名ls -l | grep ^d 只显示子目录ls -l | grep ^

2015-06-03 11:57:30 330

转载 Android学习笔记4-通知

用户通知有几种情况需要你通知用户某些事件发生了,例如下面几个:@ 当文件保存成功时,需要发一个短信提醒一下用户。@ 一些后台运行的程序需要用户注意时,要建立一个通知来用户,并且让用户更加方便的回馈后台程序。@ 当程序需要用户等待时,需要给用户一个进度条或者进度环来提示用户。每一种提示任务都可以用不同的技术来实现:@ Toast 提示:在背景上显示一个

2014-07-03 15:26:15 641

转载 Android学习笔记3-界面

用户界面 在一个Android应用程序里,用户接口是一系列的View和ViewGroup对象组合而成。Android有很多种View和ViewGroup对象,他们都继承自View基类。View对象是Android平台用户接口的基本对象。这些view类作为与用户交互的widgets小部件的父类,像文本框和按钮。ViewGroup作为提供各种布局结构的layouts的父类,例如

2014-07-03 15:21:57 1627

转载 Android学习笔记2-生命周期

组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁。在这期间,他们或许有效或许无效,有效时或许对用户可见或许不可见。下面我们就来讨论四个基本组件的生命周期,包括在生命周期内的各种状态,以及状态之间的转换。这几种状态可能的结果是:进程让他们停止, 然后实例被销毁。 activity生命周期 一个ac

2014-07-03 15:06:50 419

转载 java基础

Java基础知识总结写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。---------

2014-07-03 14:51:18 469

转载 Android学习笔记

应用基础Android是用Java语言写的,所有的Java代码和相关的资源文件被AAPT Tool 的工具打成一个Android包,后缀为apk的可运行包。这种文件专门用来发布 和安装应用程序到移动设备的。一个APK包里所有的代码都被看做一个程序。在很多方面,每一个Android应用程序都在自己的世界(虚拟机)里单独存活。@ 默认情况下,每个应用程序都在自己的L

2014-07-03 13:00:36 346

空空如也

空空如也

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

TA关注的人

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