用Go实现异步的Web开发

不知道大家还记得不记得大约一年前,我的一个白日梦《关于Web编程异步模型的白日梦》,然后这个白日梦我又连续做了好几天《Web编程异步模型的PHP原生实现》、《Web编程异步模型的 Gearman 实现(残)》。 当时怎么也没相通,还死皮白赖的粘在PHP的异步实现上不肯放手。好吧,实现是繁琐的,应用是成功的,代码是容易写的,环境是要搭建的…… 昨晚睡觉前突然觉得自己应该真正用Go实现一下异步的Web,哪怕是个例子也好啊。于是,边吃饭,边敲了一票代码搞了一个很简单的demo,分享给大家吧。在这里下载...阅读全文

阅读:10689 评论:0

【GoLang笔记】浅析Go语言Interface类型的语法行为及用法

Go不是一种典型的OO语言,它在语法上不支持类和继承的概念。 没有继承是否就无法拥有多态行为了呢?答案是否定的,Go语言引入了一种新类型—Interface,它在效果上实现了类似于C++的“多态”概念,虽然与C++的多态在语法上并非完全对等,但至少在最终实现的效果上,它有多态的影子。 那么,Go的Interface类型到底是什么呢?怎么使用呢?这正是本篇笔记试图说明的问题。 1. Method(s) in Go 在说明Interface类型前,不得不先用Go的method(s)概念来热身,因为G...阅读全文

阅读:50989 评论:6

GoLang redis 连接池

最近被日志是折腾得死去活来,写文件无疑效率是最高的,但是分布式又成问题,虽然稍微折腾一下配合NFS,还是可以搞一搞的,但是始终语言设计没有那么方便。 最终决定用redis,换了redis以为就好了,因为内存运行嘛,谁知道tcp连接开销大得一塌糊涂,服务器负载一下子高了许多,使用netstat -an 查看发现一堆的 TIME_WAIT,连ssh到服务器都巨慢无比,所谓天下武功唯快不破,这么慢80岁老太太跳一支广场舞都能给灭了吧。 既然 tcp连接开销这么大,当然首要任务就是解决连接问题,明显一个...阅读全文

2015-05-07 13:46 echo不惑
阅读:31374 评论:10

golang实现set集合,变相实现切片去重

原文地址:http://www.jb51.net/article/56828.htm,本文抽取出了set的部分,并对无伤大雅的小错误进行了修改 java中有set集合,而golang没有,今天突然有个需求要对一堆int切片进行组合去重,郁闷好久,自己的土办法时间复杂度实在太高,看到上面那个帖子感觉好高兴: golang中的map是不允许重复的,看这段代码m := map[string]string{ "1": "one", "2": "two", "3": "three", } fmt.Prin...阅读全文

2015-06-08 13:57 u012210379
阅读:18576 评论:0

golang断言的使用(Type Assertion)

golang的语言中提供了断言的功能。golang中的所有程序都实现了interface{}的接口,这意味着,所有的类型如string,int,int64甚至是自定义的struct类型都就此拥有了interface{}的接口,这种做法和java中的Object类型比较类似。那么在一个数据通过func funcName(interface{})的方式传进来的时候,也就意味着这个参数被自动的转为interface{}的类型。 如以下的代码: func funcName(a interface{}) ...阅读全文

2014-11-15 19:18 JonnyHsu
阅读:110774 评论:0

golang中time包用法

time包中包括两类时间:时间点(某一时刻)和时常(某一段时间) 1时间常量(时间格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 ...阅读全文

2014-11-26 17:47 chenbaoke
阅读:77727 评论:6

Golang学习系列(4)-面向对象编程

本文主要讲解Golang的面向对象编程,从关键概念出发,讲解了结构体、method及接口等内容 几个关键概念 Go面向对象与其他语言不通之处在于它不支持继承,Go只支持聚合(或称组合)和嵌入。 type ColoredPoint struct { color.Color //匿名字段(嵌入) x,y int //真名字段(聚合) } Golang避开了”类”、”对象”、”实例”,而采用了”类型” 和 “值”,其中自定义类型的值可以包含方法。由于没有集成,因此没有虚函数。Go对此的支持则是采用类型...阅读全文

August 29, 2015 xialingsc(夏令)
阅读:2005 评论:0

一周学会go语言并应用 by王奇疏

《一周学会go语言并应用》 by王奇疏 ( 欢迎加入go语言群: 218160862 , 群内有实践) 零、安装go语言,配置环境及IDE 这部分内容不多,请参考我的这篇安装环境《安装go语言,配置环境及IDE》 日常只有2条命令: go run 文件路径/xxx.go 运行go程序 go build 文件路径/xxx.go 编译为二进制文件或exe文件 如果你不想每次都敲这些命令,附送1个《一键编译go文件命令.bat》 只能windows下使用,( 一般情况下,ide也是用同样的原理,ide...阅读全文

2016-01-21 06:43 wangqishu
阅读:4229 评论:0

CLI:使用Go开发命令行应用

原文地址 CLI或者“command line interface”是用户在命令行下交互的程序。由于通过将程序编译到一个静态文件中来减少依赖,一次Go特别适合开发CLI程序。如果你编写过安装时需要各种依赖的CLI程序你就知道这个是有多重要了。   在这篇博客中我们将介绍使用Go开发CLI的基本知识。 Arguments    大多数CLI程序都需要输入一些参数。Go 语言将这些参数以字符串slice处理。 var Args []string 查找当前应用的名字。 package main imp...阅读全文

2016-08-24 13:15 hitandrew
阅读:14245 评论:0

云之讯短信接口GO实现

将项目变量appId, accountSId和token使用自己的替换掉就可以了。 发送信息时直接调用函数SendSMS即可,传入参数电话号码,模板ID以及模板中参数。由于云之讯的参数是以逗号分隔的,所以参数值中不能有逗号,同时参数值也不能为空。 package UcGoSdk import ( "bytes" "errors" "crypto/md5" "encoding/base64" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url...阅读全文

2016-12-29 21:00:01 Victorfun
阅读:2730 评论:0