Go语言中文网 为您找到相关结果 275

[Golang]Map的一个绝妙特性

补充说明:一些评论的人对本文中的一些内容感到很困惑,但是我不想让大家感到我言语不清,所以在此澄清一下:是的, 默认情况下,向一个hash表插入的元素是没有固定顺序的。但是因为很多原因,比如有一些帖子就指出了不是所有的map都是hash表(而且有些语言还有有顺序的hash表,比如java的TreeMap), 我还是能够了解为什么很多人(尤其是对Go map实现机制比较了解的人)会假定遍历map元素的顺序和向map插入元素的顺序是相同的。我原来的例子是我自己想出来的,并没有演示出大多数版本的Go关于这方面的特点(尽管我听说对于1.3版本可能是可以工作的)。所以我把代码更新了一下,你可以把代码复制到你的编辑器或者Go Playground来看看效果。Go确实是从随机偏移位置来开始map的元素遍历的...阅读全文

博文 2015-03-06 12:00:01 abv123456789

go语言为什么没有min/max(int, int)函数

golang为什么没有min/max(int, int)函数 我们知道go语言math包里面定义了min/max函数,但是是float64类型的,而并没有整数类型的min/max。 go语言的math包里面定义的min/max函数如下: math.Min(float64, float64) float64 math.Max(float64, float64) float64 事实上我们更经常要比较的是两个整数的场景: math.Min/Max(int, int), or math.Min/Max(int64, int64) 那么,为什么go语言不提供整数类型的min/max这两个函数呢? 下面的这篇文章给了一个解释: https://mrekucci.blogspot.jp/2015/07/...阅读全文

博文 2017-10-31 09:04:44 CodeGeek

ubuntu下最新版golang安装教程

相信打算安装golang的同学们早已看了很多安装教程了,网上的主流方法有两种,一种是 sudo apt-get install golang-go 简单暴力,但是由于现在很多golang的库已经要求 >1.1 ,而 apt-get 安装的是 1.02 ,也建议大家安装最新版的golang,因此推荐手动安装,教程本身没有问题,但是由于某些特殊原因,可能导致安装失败甚至卡在莫名奇妙的地方。在卡了一个中午后,我还是写下这篇文章总结下要注意的地方。 以ubuntu wiki的 安装教程 为例: 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get insta...阅读全文

博文 2014-10-06 07:32:32 stonxer

使用 Go 语言实现优雅的服务器重启

Go被设计为一种后台语言,它通常也被用于后端程序中。服务端程序是GO语言最常见的软件产品。在这我要解决的问题是:如何干净利落地升级正在运行的服务端程序。 目标: 不关闭现有连接:例如我们不希望关掉已部署的运行中的程序。但又想不受限制地随时升级服务。 socket连接要随时响应用户请求:任何时刻socket的关闭可能使用户返回'连接被拒绝'的消息,而这是不可取的。 新的进程要能够启动并替换掉旧的。 pseudo翻译于 3周前 2人顶 顶 翻译的不错哦! 原理 在基于Unix的操作系统中,signal(信号)是与长时间运行的进程交互的常用方法. SIGTERM: 优雅地停止进程 SIGHUP: 重启/重新加载进程 (例如: nginx, sshd, apache) 如果收到SIGHUP信号,优雅...阅读全文

博文 2014-12-20 09:00:00 pseudo, Garfielt, Ley

Go语言实现整型自增id生成器

最近需要实现一个自增序列的增长功能,原来的做法是从数据库中实现自增长就可以了,可是最近用的sequel pro死活找不到从指定值开始自增长的设置,只能自己通过代码查找数据库最后一项然后加一,这样每次需要增加数据的时候都要去查找以便,很是不方便,最近看到这篇文章,获益匪浅,作者提供的程序还能直接用,哈哈哈,赶紧mark了,谢谢作者。 原文出处:https://mikespook.com/2012/06/golang-channel-%E6%9C%89%E8%B6%A3%E7%9A%84%E5%BA%94%E7%94%A8/ 查看原文后会有很多意外收获呢 package main import ( "fmt" "time" "strconv" "reflect" ) type AutoInc s...阅读全文

博文 2017-08-10 09:05:01 大雁儿

Go 读取控制台输入

这是一个快速简单的教程,主要内容是如何在 Go 程序中读取控制台的输入。在这个教程中,我们将创建一个非常简单的脚本,这个脚本可以读取用户的输入并打印出来。 ## 读取整个句子 我们使用 `while` 循环,在 Go 语言中相当于没有任何参数的 `for` 循环,这样就可以让程序一直运行了。在这个例子中,每次输入一个字符串并按下 `enter` 键,我们会通过 `\n` 这个关键字符来区分字符串,如果你想对比刚才输入的字符串,我们还需要调用 replace 方法来去除掉 `\n` 然后再进行比较。 > 如果你想让这个程序在 Windows 系统下运行,那么你必须将代码的 `text` 替换为 `text = strings.Replace(text,"\r\n","",-1)` 因为 Win...阅读全文

博文 2018-11-11 22:28:19 xmge

Golang的fallthrough与switch的坑

创 Golang的fallthrough与switch的坑 梦朝思夕 关注 0人评论 544人阅读 2017-06-06 16:08:19 最近写Golang的是发现一个fallthrough与switch的坑:switch value.(type) { case int: fallthrough case int64: //...... }编译就报错:cannot fallthrough in type switchWHAT????在type switch 中不能使用fallthrough只能修改代码:switch value.(type) { case int , int64: //...... } ©著作权归作者所有:来自51CTO博客作者梦朝思夕的原创作品,如需转载,请注明出处,否则...阅读全文

博文 2018-07-02 12:10:31 梦朝思夕

如何优雅地关闭Go channel

本文译自:How To Close Channels in Golang Elegantly。几天前,我写了一篇文章来说明golang中channel的使用规范。在reddit和HN,那篇文章收到了很多赞同,但是我也收到了下面几个关于Go channel设计和规范的批评: 在不能更改channel状态的情况下,没有简单普遍的方式来检查channel是否已经关闭了 关闭已经关闭的channel会导致panic,所以在closer(关闭者)不知道channel是否已经关闭的情况下去关闭channel是很危险的 发送值到已经关闭的channel会导致panic,所以如果sender(发送者)在不知道channel是否已经关闭的情况下去向channel发送值是很危险的 那些批评看起来都很有道理(实际...阅读全文

博文 2017-02-24 07:50:55 天唯

Go语言 如果查询度量内存和GC使用状况

创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 这篇文章会陆续总结一些内存、Gc度量的方法 首先是通过 stats := &runtime.MemStats{} runtime.ReadMemStats(stats) 这个来获取一个stat,里面包含了内存和垃圾回收的信息:GC时间分布slice,GC总时间,GC次数等等 type Garbage struct{ a int } func notify(f *Garbage) { stats := &runtime.MemStats{} runtime.ReadMemStats(stats) fmt.Println("Last GC was:", stats.LastGC) g...阅读全文

博文 2015-06-17 23:07:37 abv123456789

Golang语言标准库http/url的Values的详细介绍

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库http/url Values 今天我们更新文章,主要推广的还是GO语言,当然现在热门搜索的还是Golang,今天我们主要讲解的就是Golang标准库里边的net/url的下边的这些 [php] type Values func ParseQuery(query string) (m Values, err error) func (v Values) Add(key, value string) func (v Values) Del(key string) func (v Values) Encode() string func (v Values) Get(key st...阅读全文

博文 2017-02-09 18:38:04 widuu

为什么Go在中国这么流行?

文章根据谷歌的trends,国内Go相关网站的Alexa以及Baidu的golang搜索排名等分析Go在中国流行的可能原因。其中提到本社区:studygolang.com 是中国Go社区的领跑者。 看到这篇文章很激动,很久没有维护该社区了,接下来会好好维护,争取做成Golang在国内最好、最大的社区。 文章地址:[why-is-go-popular-in-china](http://herman.asia/why-is-go-popular-in-china) ...阅读全文

Go圣经-学习笔记入门bufio.Scanner

上一篇 Go圣经-学习笔记入门bufio 下一篇 Go圣经-学习笔记入门bufio.Writer 由bufio.Reader引出的问题 由上篇文章《Go圣经-学习笔记入门bufio》,我们可以知道,bufio.Reader结构体中所有读取数据的方法,都包含了delim分隔符,这个用起来很不方便,所以Google对此在go1.1版本中加入了bufio.Scanner结构体,用于读取数据。 使用DEMO: func main(){ scanner:=bufio.NewScanner( strings.NewReader("ABCDEFG\nHIJKELM"), ) for scanner.Scan(){ fmt.Println(scanner.Text()) // scanner.Bytes()...阅读全文

博文 2017-10-22 00:31:10 cdh0805010

Golang+MySQL 事务

准备知识:MySQL事务 1 基本操作 sql.Tx tx会从连接池中取一个空闲的连接,直至调用commit或者rollback才会释放 tx, err := db.Begin() // 创建tx对象 tx.Query(command1) tx.Exec(command2) tx.Commit() 2 并发 事务只有一个连接,事务内的操作是串行的 db, _ := sql.Open(...) rows, _ := db.Query("SELECT id FROM tt_users") for rows.Next(){ var ( user_id int openid string ) rows.Scan(&user_id) db.QueryRow("SELECT openid FROM tt...阅读全文

博文 2018-08-08 14:34:53 埃尔温薛定谔不养猫

ECUG Con 邀您共议服务端开发最深度实践

ECUG 全称为 Effective Cloud User Group (实效云计算用户组),由七牛云 CEO 许式伟于 2007 年发起,集结了一批具有高端视角并仍醉心于技术本身的同仁,共同关注云计算前沿技术的最新成果和分布式开发、运维的最佳实践。在过去的八年中, ECUG 社区每年都会组织一场全国性的 ECUG Con 大会,期间众多技术大神纷纷参与,他们或许在大众技术会议已经鲜少露面,但会在 ECUG Con 畅谈心得,共同奉献一场半公开的高规格技术分享盛会。 ECUG Con 发展历程 ECUG Con 2015 将于 2016 年 1 月 22 ~ 23 日在新疆大厦举行,作为具有重要意义的第十期聚会,我们落地北京,同时首次面向所有技术人群公开报名。本届大会仍然以交流云计算产业的最...阅读全文

博文 2017-02-09 08:10:45 七牛云

vscode 的配置golang代码提示

经过网上查找解决方法,也按照这篇文章修改了vscode 的配置,但依然无法进行代码提示。 参考:https://www.cnblogs.com/Dennis-mi/p/8280552.html { "go.autocompleteUnimportedPackages": true, "go.useCodeSnippetsOnFunctionSuggest": true, "go.gopath": "/home/chensl004/Workspace/go/", "go.useCodeSnippetsOnFunctionSuggestWithoutType": true, "go.inferGopath": true, "go.gotoSymbol.includeImports": true,...阅读全文

[北京][东四北新桥]好贷网云金融事业群寻 Golang 中高级工程师

我们是当下最红火的行业:网络小贷。 我们的 app https://itunes.apple.com/cn/app/id1168872199?mt=8 由于业务的飞升,我们需要几名 Golang 中高级工程师一起共创辉煌。 云金融事业部 Golang 中高级工程师 岗位职责:负责网络小贷相关后台风控,催收,交易系统对接和开发 基本要求:2 年以上 WEB 实战经验 半年以上 Golang 使用经验。 薪资访问:13k-30k 工作地点:北京东四北大街科林文化产业园 这里,你已经有 2 个 Golang 工程师伙伴了,你不会孤独的。 欢迎各位鼎力加盟. 联系:luojianguo#haodai.net 注意邮件标题为:xxx 应聘...阅读全文

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

goroutine作为Golang并发的核心,我们不仅要关注它们的创建和管理,当然还要关注如何合理的退出这些协程,不(合理)退出不然可能会造成阻塞、panic、程序行为异常、数据结果不正确等问题。这篇文章介绍,如何合理的退出goroutine,减少软件bug。 goroutine在退出方面,不像线程和进程,不能通过某种手段强制关闭它们,只能等待goroutine主动退出。但也无需为退出、关闭goroutine而烦恼,下面就介绍3种优雅退出goroutine的方法,只要采用这种最佳实践去设计,基本上就可以确保goroutine退出上不会有问题,尽情享用。 第一种:使用for-range退出 for-range是使用频率很高的结构,常用它来遍历数据,range能够感知channel的关闭,当ch...阅读全文

博文 2018-12-08 15:34:42 shitaibin

golang sync.Pool试用说明及注意事项

Go tip 是 Go 语言的实验分支,包含了很多尚在讨论,但很有可能会加入 stable 分支的特性。“Go tip 在做什么”(原文地址:What's happening in Go tip)分析总结了 Go 语言尚在开发中的一些重要特性。 本文译自:What's happening in Go tip (2014-01-10) 现在是 2014 年了,刚刚经历了圣诞和新年前夜,Go 团队就已经开始为下一个发布版本而工作了。也因此,“Go tip 在做什么”系列也重开了。 作为这个系列的最新一篇,这篇文章将会有些小调整。最重要的调整是,不会再遵循每周一篇文章的发布周期。一周里可能有几篇文章,也可能一篇都没有。这个调整,一部分由于个人原因,一部分也因为这样可以更灵活的追踪 Go 的改变。这...阅读全文

Golang并发模型:并发协程的优雅退出

goroutine作为Golang并发的核心,我们不仅要关注它们的创建和管理,当然还要关注如何合理的退出这些协程,不(合理)退出不然可能会造成阻塞、panic、程序行为异常、数据结果不正确等问题。这篇文章介绍,如何合理的退出goroutine,减少软件bug。 goroutine在退出方面,不像线程和进程,不能通过某种手段强制关闭它们,只能等待goroutine主动退出。但也无需为退出、关闭goroutine而烦恼,下面就介绍3种优雅退出goroutine的方法,只要采用这种最佳实践去设计,基本上就可以确保goroutine退出上不会有问题,尽情享用。 1:使用for-range退出 for-range是使用频率很高的结构,常用它来遍历数据,range能够感知channel的关闭,当chan...阅读全文

博文 2018-12-04 15:34:49 大彬

总结了才知道,原来channel有这么多用法!

这篇文章总结了channel的10种常用操作,以一个更高的视角看待channel,会给大家带来对channel更全面的认识。 在介绍10种操作前,先简要介绍下channel的使用场景、基本操作和注意事项。 channel的使用场景 把channel用在数据流动的地方: 消息传递、消息过滤 信号广播 事件订阅与广播 请求、响应转发 任务分发 结果汇总 并发控制 同步与异步 ... channel的基本操作和注意事项 channel存在3种状态: nil,未初始化的状态,只进行了声明,或者手动赋值为nil active,正常的channel,可读或者可写 closed,已关闭,千万不要误认为关闭channel后,channel的值是nil channel可进行3种操作: 读 写 关闭 把这3种操...阅读全文

go-tour练习解答

go-tour对于想学习golang的人来说是一个很好的教程。 首先go-tour是有web版本,但是需要FQ。如果不能FQ的,也可以在google code上自己下载go-tour源码,go build,run一下,在自己的机器上就可以跑这个教程了。 提醒下,如果是后者,这篇文章中的程序对应的import包就需要进行相应修改了。 下面给出我的go-tour中的Exercise的解答(在web上已经测试通过) Exercise: Loops and Functions 第一个循环10次: package main import ( "fmt" ) func Sqrt(x float64) float64 { z := float64(1) for i := 0; i <= 10; i++ {...阅读全文

博文 2014-10-04 19:26:16 yjf512

[Golang] 从零开始写Socket Server(2): 自定义通讯协议

在上一章我们做出来一个最基础的demo后,已经可以初步实现Server和Client之间的信息交流了~ 这一章我会介绍一下怎么在Server和Client之间实现一个简单的通讯协议,从而增强整个信息交流过程的稳定性。 在Server和client的交互过程中,有时候很难避免出现网络波动,而在通讯质量较差的时候,Client有可能无法将信息流一次性完整发送,最终传到Server上的信息很可能变为很多段。 如下图所示,本来应该是分条传输的json,结果因为一些原因连接在了一起,这时候就会出现问题啦,Server端要怎么判断收到的消息是否完整呢?~ 唔,答案就是这篇文章的主题啦:在Server和Client交互的时候,加入一个通讯协议(protocol),让二者的交互通过这个协议进行封装,从而使S...阅读全文

博文 2015-10-16 12:00:01 ahlxt123

[翻译] Go(#golang) 实现的状态机

春节前,粗略研究了一下微信的公共帐号。用 Golang 实现了一个简单的 package wechat,用于接入微信公共帐号。当时就在思考,微信的文字交互过程如果要实现有一定逻辑的复杂过程,可能需要使用到状态机。然后,就看到了这篇文章:《State machines in Go (#golang)》。非常合时宜啊!翻译于此,以飨读者! ——–翻译分隔线——– Go(#golang) 实现的状态机 我已经用 Go 代替 Python 重写了一个关键的服务组件。由于 Python 的解释器不是线程安全的,所以在解析的时候使用了全局锁。Go 与 Python 不同,它内建了并发支持,并且是静态编译的。 首先要实现一个状态机。Python 的版本是基于 David Mertz 的这篇文章。 Mert...阅读全文

博文 2014-10-09 16:18:31 mikespook

golang入门篇-基础类型

golang有如下基本类型: 整数类型: int8、int16等等 浮点类型:float32、float64 布尔类型:bool 复数类型: complex64、complex128 字符串类型: string 字符类型: byte、rune 整数类型 整型转换 golang中的编译器不会做隐式的类型转换,int和int32是俩种不同的类型。 var value2 int32 value1 := 64 // value1将会被自动推导为 int类型 value2 = value1 // 编译错误 value2 = int32(value1) // 强制类型转换编译通过 在做强制类型转换时,需要注意数据长度被截短而发生的数据精度损失(比如将浮点数强制转为整数)和值溢出(值超过转换的目标类型的值...阅读全文

博文 2017-10-07 19:31:38 u010990172

一些不常见的Go命令参数详解

你是刚开始使用Go工具么?或者你想扩展知识?这篇文章将会描述每个人都需要知道的Go工具参数。免责声明:这篇文章可能会有些偏见。这篇文章描述了我个人会用到的Go工具参数,还有一些是我周围的人遇到的问题。如果你还有别的想法,在Twitter联系我。$ go build -x-x会列出来go build调用到的所有命令。如果你对Go的工具链好奇,或者使用了一个跨C编译器,并且想知道调用外部编译器用到的具体参数,或者怀疑链接器有bug;使用-x来查看所有调用。$ go build -x WORK=/var/folders/00/1b8h8000h01000cxqpysvccm005d21/T/go-build600909754 mkdir -p $WORK/hello/perf/_obj/ mkdi...阅读全文

博文 2016-10-11 02:00:00 abv123456789

检测 Go 程序中按值传递的 locks

`go tool vet -copylocks` 命令简介 Go 语言安装包附带 [vet](https://golang.org/cmd/vet/) 命令行工具。该工具能对程序源码运行一套启发式算法以发现可疑的程序结构,如无法执行的代码或对 `fmt.Printf` 函数的错误调用(指 arguments 没有对齐 format 参数): ```go package main import "fmt" func f() { fmt.Printf("%d\n") return fmt.Println("Done") } ``` ``` > go tool vet vet.go vet.go:8: unreachable code vet.go:6: missing argument for ...阅读全文

博文 2018-08-28 08:57:53 mbyd916

chinapub读书会第3期:GO语言与Docker技术分享会

活动安排 主办方: 时间:2015年04月25日(周六) 13:00-17:30 地点:北京丰台区成寿寺路11号邮电出版大厦。乘坐300快外、特8外快,、300外到方庄桥东站下车,往南200米路西。 活动嘉宾 郝林 Gopher、高级Java软件工程师、Python程序员和Linux爱好者。目前在北京数人科技有限公司任资深技术工程师,从事大数据处理平台的研发工作。曾就职于宜信、搜狐网,并先后担任软件架构师和技术主管等职务。在互联网软件的设计和开发方面拥有丰富的实战经验。 刘斌 具有10余年软件开发经验,关注后台开发技术和各种编程语言。做过电子商务、金融、企业系统以及Android手机开发;写过Delphi,也兼做系统管理员和DBA。 沈峰 看准网数据组组长,数据工程师 活动流程 13:00 ...阅读全文

博文 2015-04-20 18:00:09 chinapub_2009

PHP和Golang使用Thrift1和Thrift2访问Hbase0.96.2(ubuntu12.04)

目录: 一、Thrift1和Thrift2的简要介绍 1) 写在前面 2) Thrift1和Thrift2的区别 二、Thrift0.9.2的安装 1) 安装依赖插件 2) Thrift0.9.2的编译 3) Thrift0.9.2编译后,配置成可执行文件 三、Hbase0.96.2的安装 1) Hbase的介绍 2) Hbase的安装 3) Hbase基于源码的Thrift生成接口文件 四、PHP和Golang使用Thrift1和Thrift2访问Hbase 1) PHP基于Thrift1访问Hbase 2) Golang基于Thrift2访问Hbase 五、常见问题 六、扩展阅读 目录: 一、Thrift1和Thrift2的简要介绍 1) 写在前面 从Hbase0.94.11开始有两套t...阅读全文

博文 2014-10-07 22:38:36 lion.net

golang数据的类型识别、获取与判断

### golang数据的类型识别、获取与判断golang是一种简洁、方便、效率高的语言,很适合C/C++、Python等程序员使用。golang是静态语言,但是具有动态语言的特性,这篇文章主要介绍golang的数据类型在运行期的识别、获取和判断方法,让大家可以感受到golang静态语言的动态特性。#### 1.类型识别在我们编码中,经常会碰到读取数据时,要判断数据是哪种类型,典型的是json格式文本的读取和识别。在golang中主要用 x.(T)的方式来识别类型:x是变量,而且是不确定类型的变量,interface,如果是已知类型的,比如x是string,那么就会报错:invalid type assertion: data.(string) (non-interface type str...阅读全文

博文 2018-12-13 13:34:45 古月晨风

布隆过滤器

这篇文章可能涉及到一些拓扑知识,可以参考之前的文章: 常见哈希函数FNV和MD5 Golang binary包——byte数组如何转int? 布隆过滤器的原理不算复杂。对数据进行查找,简单点的可以直接遍历;对于拍好顺序的数据,可以使用二分查找等。但这些方法的时间复杂度都较高,分别是O(n)和O(logn)。无法对大量乱序的数据进行快速的查找。 哈希,将给定的数据通过哈希函数得到一个唯一的值,此值可以作为数据的唯一标识,只要通过该标识,再通过哈希函数逆向计算,就能还原出来原始的数据。在前面的网址压缩的调研分析里面介绍的压缩网址的方法,其实也就是一种哈希,只不过借助了数据库的支持。 布隆过滤器就是借助了哈希实现的过滤算法。通过将黑名单的数据哈希之后,可以得到一个数据。申请一个数组空间,长度是黑名...阅读全文

你好,学士,再见,再见。

再见了,我的40X实验室,再见了,我的cslg。 学号为Cslg.XXX111的同学,你的在校时长所剩不多,请准备好下线。 ​ 2013年,我来到这个学校,怀着希望,那时我告诉自己,如果有一天,失去希望了,就用LOL里赵信的一句话来激励自己:勇士之魂,从未破灭。但是,每次失望,都是先在微博上痛骂WQNMLGB。高兴的时候,从来没有在微博上发过什么。印象中,就追到了女朋友的时候,发了一句:起飞喽。 要反省的是,我的心态,从大一下学期就有问题。我把学校当成试炼场,而没有当成一个用心生活的地方。我当时并没有想到,这会是这辈子不能忘记的一部分,是实实在在的经历,而不是什么可以重来的试炼场。所以,犯下了很多错误,技术上,这个好,学!结果呢,往好了说,技术广度很不错,往差了说,什么都不好好学。爱情上,女...阅读全文

博文 2017-06-17 05:07:01 送你一碗大麦茶

Go语言的前景分析

本文为原创文章,转载注明出处,asdfasdfasdf 欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 这段时间比较忙,相信很多朋友大概都知道,如果不知道的话,可以参考我上篇文章跨维度的打击,是可以直接秒杀的,里面有介绍,大家可以看看。 抓住时代的趋势 在上篇文章中,也就是那个跨维度的打击,是可以直接秒杀的中,提到这个时代的问题,这次针对go语言的前景分析,其实我也想讲一下时代的问题。还记得2010年的时候,那个时候移动互联网时代刚刚兴起,很多以前做java的,也就是做J2EE的人(当时J2EE是红海),抓住了这个机会进行的转型,然后得到红利,甚至实现了人生的转变,这个真的不是...阅读全文

博文 2018-10-16 09:34:41 飞雪无情

goprotobuf基本使用

如果你对Google Protocol Buffer不了解,可以先看下我这篇文章里收集的中文资料:关于Google Protocol Buffer的中文资料 源码地址:https://code.google.com/p/goprotobuf/ 详细的介绍:https://code.google.com/p/goprotobuf/source/browse/README 介绍: This software has two parts: a ‘protocol compiler plugin’ that generates Go source files that, once compiled, can access and manage protocol buffers; and a libr...阅读全文

博文 2014-10-09 16:52:15 Rhino(犀牛)

Go语言中使用正则提取匹配的字符串

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 我们在做爬虫的过程中,需要对爬取到的内容处理,比如说提取出我们需要的内容和文本,比如城市信息、人员信息等等,除了字符串查找外,使用正则匹配是比较优雅和方便的方案。 这篇文章,主要以提取URL中的日期和文章名为例,来举例说明如何使用正则提取字符串。 比如这个URL http://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html,这是前段时间写的一篇关于goquery的使用教程。从这个URL我们可以看到有年月日的日期信息,还有...阅读全文

博文 2018-10-17 19:40:04 飞雪无情

报名云栖大会成都峰会,听阿里云首席安全研究员分享安全防护实践经验

2017云栖成都峰会,阿里云首席安全研究员吴翰清,将现场发布“安全产业扶助计划”,深度解读勒索软件的前世今生,并提供更多安全防护实践经验分享。 *关于近期大家非常关注的"永恒之蓝"勒索病毒事件,阿里云已经第一时间发布防护全攻略( http://click.aliyun.com/m/21115/ ) ![](https://img.alicdn.com/tfs/TB1qZHKRXXXXXceXFXXXXXXXXXX-1750-461.jpg) 2017云栖成都峰会将全方位展示最新云上产品,以全新视角解读大数据时代下的新营销新生态,带你畅快感知计算无边界。本次峰会集合政府、阿里云、专家学者、合作伙伴、媒体等多方生态于一体,呈现丰富的应用案例与实战经验。 会...阅读全文

什么是Go语言?有前途么?

同类问题:什么是天命? 回答:潇洒走一回,才能告诉你。 根据编程语言学习的经验,我发现,这个问题,只有等到学习完一门语言,然后做过一个项目,熟练的Debug之后,才能有明确的认知。可是,几乎所有的相关书籍和网站,又不得不以这样的标题开头。 先“用不用学习Go语言”,“Go语言有前景么?”这类问题的朋友,能够节约些脑力,特写此篇文章:1.你必须保证精通一门语言,才能做程序员,因此,保证你学习go语言不后悔;2.Go语言是谷歌2009发布的第二款开源编程语言。9年过去了,还有人在用。google证明不了什么,只有时间,才能证明一切;3.【引自百科】Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。【/引自百科】 合格...阅读全文

go实现抓妹子图片

1:学习练手用的 2:我也是看到http://www.oschina.net/code/snippet_2362573_48180这篇文章后发现妹子图这个网站结构比较简单,实现起来easy 3:代码还有很多优化的地方,怕老板看见只能回家搞了 4:欢迎指正 直接上代码 package main import ( "bytes" "fmt" "io/ioutil" "net/http" "os" "regexp" "strconv" ) const ( PATH string = "~/meizi" //文件存储路径 STARTURL string = "http://www.mzitu.com/model" //妹子图模块列表页url CONCURRENCY int = 3 //并发下载数 )...阅读全文

博文 2015-06-18 09:02:10 vspeter

golang积累-接口指针与结构体指针

对go做过开发的朋友都很熟悉interface。这几天在网上看到了篇文章,谈到了interface与nil判等的问题。题是好题,就进一步了解了一下。 原题如下: Nil接口并不是有Nil指针的接口 type Cat interface { Meow() } type Tabby struct {} func (*Tabby) Meow() { fmt.Println("meow") } func GetACat() Cat { var myTabby *Tabby = nil // Oops, we forgot to set myTabby to a real value return myTabby } func TestGetACat(t *testing.T) { if GetACa...阅读全文

博文 2016-10-03 10:00:02 qq_26981997

如何打造一份优雅的简历?

最近一些朋友找我内推,并且给我发了他们的简历。很多简历在我看来都不合格,不只是内容,还有格式,在我这都没过关。然后,我都会把我的简历模板贡献出来,收获了诸多好评。 为了让更多读者朋友拥有一份优雅得体的简历,我会倾其所能,把经验全部传授出来,希望你能有收获。 虽然现在不是求职的高峰期,但是社招、实习还是随时都可以进行的。我也不是一个追热点的人,只求对你有所帮助。另外,简历的制作其实并不是一蹴而就的事,当你知道了写简历的套路,平时就会有意识的积累素材,所以什么时候都可以学习如何打造一份优雅的简历。 简历是什么?在我看来,在面试之前,直接代表你这个人。虽然简历不会说话,但是简历的内容会让面试官直接在脑海里勾勒出你的形象。如果简历排版非常精致,你就会被塑造成一位细心、得体的形象;反之,如果简历里出现...阅读全文

博文 2019-07-08 17:32:50 饶全成

如何利用golang 反射值来定义一个变量

之前写java的时候就已经知道了有反射这个概念,看过一遍文章专门介绍了一下java的反射机制,不过现在忘记了。 今天写一个通用函数的时候要对传入的参数经行类型判断,还要定义与其像同类型的变量经行取址运算,baidu, google,golang reflect包也看了好久,也没看到将返回值来定义个变量的办法。最后在一篇博客中得到灵感—–>点击可以看看。 这篇文章中没有告诉怎么将反射值去定义一个变量,但看完之后思考一下,既然要返回一个类型,但是类型又是不确定的,若存在这样一个返回变量的函数,则其返回类型必是Interface,在官网文档里找返回类型是Interface的函数,就是它了,它是Value类型的一个函数,所以就不能使用reflect.TypeOf(i interface{})来操作了...阅读全文

博文 2016-03-28 05:00:01 Tangs_

在Go包里添加C代码并且不使用CGO(不需要gcc)

如果go代码里使用了cgo,那么编译的时候电脑上必须按照gcc才能正确编译 这篇文章展示了如何用c写一个包让go调用并且不需要使用cgo A 需要注意的: 1. C代码天生的不安全 2. Go1的兼容性保证不包括C代码 3. C函数不能inline 4. 逃逸分析不能跟踪传递到C函数里的value (逃逸分析:http://kenwublog.com/jvm-optimization-escape-analysis) 5. C编译器(5c,6c,8c)没有对应的Go编译器优化做的好,因此生成的代码也许没有Go代码优化的那么好 6. C代码是plan9风格的,与C89较相似 B 返回的方式 第一个例子是一个简单的返回true的函数:True void ·True(bool res) { res...阅读全文

博文 2015-01-13 22:16:22 varding

一步一步教你写BT种子嗅探器之一---原理篇

之前看到 lantern 这个十分火的翻墙工具,其利用了P2P的思想,就想了解一下P2P相关的协议。看了下最流行的BT协议官方文档,就产生了实现BT协议的想法,顺便根据协议实现了一个BT种子嗅探器。 也有人将BT种子嗅探器称为BT种子爬虫,个人觉得其行为特性和传统的web爬虫相差较大,反而和嗅探器很类似,因此暂且称之为BT种子嗅探器吧。 接下来将写一系列文章来介绍其原理和具体实现方式。这篇文章先提纲挈领,介绍其工作原理,以对全局有一个把握。后序的文章再介绍具体细节。 背景知识 在讲原理之前首先你得具备BitTorrent(简称BT)协议的一些基本知识,以便于理解接下来要讲的嗅探器。BT协议其实是一个协议簇,BEP-3 是其基本协议内容,其他的大部分都是围绕这个来进行扩展或补充。要想从BT网络...阅读全文

博文 2017-02-09 08:32:12 shiyanhui

说说c, c++ 和 go

今天接触到了Go语言, 请原谅我现在才接触到Go, 之前听云风大神说起过, 但我总把它和易语言混淆了, 导致我没有更早的了解到这个语言. 就在一年多前, 那个时候的我还是对C++无比的热爱, 认为c++是做后台服务器的不二选择. 那个时候总认为c 跟 c++是一家的, 所以我总爱标榜自己为c/c++程序员. C++虽然完全兼容了C(这是优点, 也是C++致命的缺陷), 但是C++跟C的设计思想可以说是很不一样的, 具体说起来可以参见云风关于C++和C的一些讨论. 对C++的认识随着自己做聚能推项目不断加深, 我了解几乎所有c++的特性, 但说实在的, 我能用上的特性真的不多. 我也试图研究那些神一般的模板元编程, 但我实在是研究不下去, 因为我觉得这么复杂的的实现, 只是为了那么一点点的效率...阅读全文

博文 2014-10-04 19:26:53 winkyao

慕课网招聘 GO 讲师

岗位职责: 1.根据用户的学习需求,设计开发更具有前瞻性与实用性的课程;完成课程一体化设计方案,包括教学内容、教学大纲、教学指南、教学活动等; 2.按照教学计划要求,完成在线课程录制,优化改进; 3.完善培训教辅材料、案例体系,制定课程考核标准,并建立题库; 4.指导助教开展网上学习辅导活动,帮助助教提高专业教学能力。 任职要求: 1.至少3年以上golang使用经验; 2.深入的实战经验,热爱分享,逻辑思路清晰,普通话标准,语言表达流畅,合作精神佳者优先。 有意者可加QQ 982647007 了...阅读全文

Golang 语言基础之六: string, pointer

Golang 语言基础之六: string, pointer Golang 语言基础系列: Golang 语言基础之一: type, variable, constant Golang 语言基础之二: for, ifelse, switch Golang 语言基础之三: array, slice Golang 语言基础之四: map, range Golang 语言基础之五: function Golang 语言基础之六: string, pointer Golang 语言基础之七: struct, method Golang 语言基础之八: interface Golang 语言基础之九: error, panic, recover Golang 语言基础之十: goroutine, ch...阅读全文

博文 2017-02-10 13:40:49 Xiaohui Wang

慕课网招募golang 讲师

20k-30k 时间自由、 分成收益、持续分成 、不需要面试 岗位职责: 1. 根据用户的学习需求,设计开发更具有前瞻性与实用性的课程;完成课程一体化设计方案,包括教学内容、教学大纲、教学指南、教学活动等; 2. 按照教学计划要求,完成在线课程录制,优化改进; 3. 完善培训教辅材料、案例体系,制定课程考核标准,并建立题库; 4. 指导助教开展网上学习辅导活动,帮助助教提高专业教学能力。 任职要求: 1. 至少3年以上golang使用经验;web应用、采集系统,日志处理、微服务等内容。golang有深入的研究和使用 2. 深入的实战经验,热爱分享,逻辑思路清晰,普通话标准,语言表达流畅,合作精神佳者优先。 ...阅读全文