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

[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

7天用Go从零实现系列7days-golang

7天能写什么呢?类似 gin 的 web 框架?类似 groupcache 的分布式缓存?或者一个简单的 Python 解释器?希望这个仓库能给你答案。目前已经实现 - 类似 gin 的 Web 框架 [Gee](https://geektutu.com/post/gee.html) - 类似 groupcache 的分布式缓存 [GeeCache](https://geektutu.com/post/geecache.html...阅读全文

开源项目 2020-02-13 20:55:34 geektutu

使用 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 大雁儿

辞职半年了,做了一个付费专栏的产品

小专栏 :https://xiaozhuanlan.com/ 小专栏是一个专业人士的创作知识社区,旨在为一些在某个领域有深度研究的小伙伴提供的写作平台,专栏需要进行申请,通过审核后即可开始您的创作。后续小专栏会推出新功能,我们愿景就是要改变技术人购买实体技术书的传统方式,转而购买电子书,购买点子技术书籍有非常多好处,总结下就是:第一环保,第二电子书更佳符合技术学习方式,第三作者可以得到更多的收入。 小专栏最看重的还是您**专业**的分享,无论关于技术、产品或者运营方面。 推荐一些目前比较不错的专栏 ## iOS 1、[iOS 成长之路](https://xiaozhuanlan.com/iosdev) 目前已经收获了超过5500元啦 面向读者:笼统的说...阅读全文

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

终于有人把Java进阶大数据缘由全面讲明白了!

如今随着计算机技术的全面普及,数字化的数据已经对人们的生活起到了息息相关的作用,大家也经常关注技术圈的发展,很多java工程师都在担心自己适合的技术发展道路该怎么走,现在也算有个方向了。大数据的介绍:大数据(BIG DATA),指无法在一定时间范围内用常规软件工具进行收集、管理和处理的数据集合;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产 ;大数据处理-现状与挑战近日,2019中国国际大数据产业博览会上中国科学院院士梅宏在《大数据处理-现状与挑战》为主题演讲中指出:大数据为整个计算机体系带来一系列技术挑战,其中大数据处理是一个重要的环节。如何高效处理各类混合负载,如何在已有开源生态的基础上做创新,如何吸取各大开源框架之所长,如何构建新型计算...阅读全文

博文 2019-06-01 01:34:42 正在简书上学习

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 埃尔温薛定谔不养猫

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并发:并发协程的优雅退出

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 大彬

go 语言进阶学习笔记(一)

一 我先想分析一下现在有哪些公司使用go 语言,go语言在实际开发中有哪些使用场景。我觉得学习一门新语言一个很重要的问题。Go大概09年面世以来,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,也诞生了很多基于Go的服务和应用,比如Dokcer、k8s等,现在我们看下,有哪些大公司在用Go语言了。 【Google】 这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ 查看更多Google的Go开源项目。 【七牛】 整个产品(包括基础服务、Web端、统计平台、各类小工...阅读全文

博文 2018-10-30 21:34:41 曹帅_前端工程师

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

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

Java程序员达到年薪20W,需要学习多长时间?

当你期望根据一门技术的专业学习,实现自身的月薪过万就业梦, 那么在专业学习以前必须先知道这门技术的薪酬状况,本文小编就为大伙儿带来Java的发展前景和薪酬情况,一起来看看吧。​1 Java工程师的就业率​在日本、新西兰、澳大利亚、英国等资本主义国家和中等发达国家中,Java软件工程师年薪均在4—15万美金;当然在中国,Java软件工程师也有极好的工作机会和很高的薪水。小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!在将来五年内,合格it人才的需求量将远大于供给。Java软件工程师是现阶段国际高端计算机领域就业薪酬非常高的一...阅读全文

博文 2019-01-09 22:22:58 javaGO007

最新Go语言学习路线图 带你通关Go语言

在近一年的编程语言的排行榜中,Go语言跻身靠前的位置。Go语言具有入门快、程序库多、运行迅速等特点,开发效率和执行效率都是各大编程语言中的佼佼者。企业对于Go语言的使用情况正逐年上升。自发布以来,Go语言就深受明星大厂的喜爱,包括以Java打天下的阿里巴巴,更不用说深爱Go的滴滴、今日头条、小米、奇虎360、京东等知名企业,业界甚至一度看好Go语言有取代Java王者地位的潜力。面对C位出道的Go语言,你还不赶快上手,提前学习一下?!一个很全面的学习路线图对初学者来说,起到很好的指引作用,如果找不到一个系统专业的学习路线,可能会走很多的弯路,下面,千锋的小编就给大家分享一个最新的Go语言学习路线图。 入门Go语言的同学基础不一,具体可以分成下面几类。零基础的同学:可能正准备入行或对编程刚开始感...阅读全文

博文 2019-12-10 08:33:23 千锋IJava

golang交叉编译工具,gox使用入门

gox入门教程 先说下交叉编译是什么? 交叉编译也就是你可以在linux上编译出可以在windows上运行的程序,在32位系统编译出64位系统运行的程序。 gox就是方便你使用golang的交叉编译的工具。 安装gox 首先你的机器上需要装有golang。配置好了GOROOT,GOPATH这两个环境变量。 我机器上的配置是这个样子(仅供参考) export GOROOT=$HOME/go export GOPATH=$HOME/goproj export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN 安装gox其实很简单(只需要2步)。 go get github.com/mitchellh/gox 之后命令行输入gox -h,应该会用输出的,不然你要...阅读全文

博文 2014-10-04 19:26:51 go-skyblue

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

Golang的交互模式进阶-读取用户的输入

Golang的交互模式进阶-读取用户的输入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 读写数据除了 fmt 和 os 包,我们还需要用到 bufio 包来处理缓冲的输入和输出。 一.从控制台读取输入 我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan 和 Sscan 开头的函数。具体代码如下 1 /* 2 #!/usr/bin/env gorun 3 @author :yinzhengjie 4 Blog:http://www.cnblogs.com/yinzhengjie/tag/GO%E8%AF%AD%E8%A8%80%E7%9A%84%E8%BF%9B%E9%98%B6%E4%B9...阅读全文

博文 2017-11-08 06:00:01 yinzhengjie

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 古月晨风

从PHP转到Go,看我就够了

引用公众号:进阶的脚步 链接:我是怎么从PHP转到Go的? 前言 最近换了工作,从入职到熟悉业务,到真正参与项目研发,这个过程有很多需要总结和思考的地方,主要是牵涉到技术栈切换,汇总一下分享出来,希望可以帮助到你。关于切换技术栈,对一个研发工程师来说,意味着战场换枪,海中换船。那么从PHP切换Golang,有哪些需要注意的呢?慢慢听我给你絮叨~ 有哪些需要注意的呢? 编程思想 这个听起来很空泛,很难具体的描述出来,但是跟实际研发关联很深。接触Go的时候,很容易带着主观思维去思考,活生生把Go写成了Java、PHP。所以,刚接触Go的时候不要背着历史包袱。要注重了解go所推崇的编程思想。 2.类比思维 在切换技术栈,当然在PHP所经常用到的技术中间件和开发工具也会跟着切换。 简单罗列一下: 一...阅读全文

博文 2019-05-23 07:34:41 指尖流年

布隆过滤器

这篇文章可能涉及到一些拓扑知识,可以参考之前的文章: 常见哈希函数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 飞雪无情

Java人才市场年度盘点:转折与终局

2017 年底,我们可以用“风光背后的危机”来形容 Java 工程师们的处境。一年时间很快又过去,在全球红利消退的 2018 年,Java 人才市场蛰伏许久的「危机」,是否浮出了水面?小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!注:本文数据除另行说明外,均取自 2018 年 1 月1 日至 12 月 31 日,经筛选在 100offer 进行匿名展示的 3921 位 Java 方向求职者和 24617 份面试邀请(下文简称面邀)。Java 语言依旧热门Java 程序员却未必?1、2018 年 Java 仍然是最流行、招...阅读全文

博文 2019-02-14 22:34:45 java高级编程中心

什么是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

Java架构书籍:微服务架构必读书单(附微服务架构模式进阶导图)

微服务架构必读书单 ![image.png](https://static.studygolang.com/181228/5893f8653ce25d29855fd0ec4708da25.png) 《深入理解Spring Cloud与微服务构建》 方志朋 著 谈到微服务,大家众说纷纭,但却很难有一个清晰的概念来描述。微服务不是“银弹”,我理解的微服务是一种文化,而我们要做的就是将微服务的理念运用到实际开发中。经过一系列的技术选型,最终Spring Cloud凭借其成熟的组件、完善的一站式解决方案,最终成为了我们落地微服务的选择。 此时的Spring Cloud相关资料在国内还是凤毛麟角,没有完整的中文书籍和教程可以参考,只有官方的英文文档以及网上零零散散的教程可以阅读。就是在这种情况下,本书...阅读全文

博文 2018-12-28 16:29:41 Javaspring12

TiKV Committer 庄天翼:只要能提升 Codebase 质量,就值得提交 PR

2020 年 2 月,TiKV 项目迎来了一位新晋 Committer —— 庄天翼(GitHub ID:TennyZhuang),他 2018 年毕业于清华大学,目前在旷视科技担任分布式存储开发工程师,平时爱看动漫,工作之余也喜欢写一些代码,实现自己的想法。前天,我们“正儿八经”地采访了庄天翼同学,在互相努力憋笑中,愉快地掉落了以下文字…… 传说中的“天才少年” 天翼并不是普通意义上的计算机“天才少年”。 虽然他在大四时和队友一起拿了 CCPC(中国大学生程序设计竞赛)区域赛金牌,但他第一次接触编程已经是高中了,当时并没有深入研究编程,只是觉得学起来挺喜欢。在拿到化学竞赛金牌并保送清华后他也没有选择计算机专业,而是在材料学院就读,直到大三才正式转专业到了软件学院。 为了顺利转系到软件学院,...阅读全文

博文 2020-03-20 05:32:48 PingCAP

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

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

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

还在学Java吗?go语言更高薪

2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。由于出身名门,Go在诞生之初就吸引了大批开发者的关注。诞生十年以来,已经涌出了很多基于 Go 的应用。就在不多久之前,知乎也舍弃了 Python,转 用 Go 重构推荐系统。对于一门只有十年历史的新语言,Go的发展势头相当迅猛,容器界的扛把子 Docker 就是用 Go 写的,目前国外的Google,AWS,Youtube,Soundcloud,Mozilla等公司都有使用Go语言,国内的阿里云、今日头条、滴滴、七牛云等也都在大量使用Go语言开发云计算产品, 业界甚至一度看好 Go 语言有取代 J...阅读全文

博文 2019-08-21 10:02:42 薄荷猫_70f1

golang进阶(三)——后台进程的启动和停止

+++ title=”golang进阶(三)——后台进程的启动和停止” date=”2017-10-12” tags=[“golang”,”cobra”] categories=[“资源管理”] description=”不想再像java或者其他语言那样为了操作后台程序写各种脚本的话,这篇文章值得你一看” featured=true image=”img/201710/fengjing2.jpg” +++ 不想再像java或者其他语言那样为了操作后台程序写各种脚本的话,这篇文章值得你一看 启动命令 和上一篇文章一样,我们先来个非后台运行的启动命令 func init() { startCmd := &cobra.Command{ Use: "start", Short: "Start Gon...阅读全文

博文 2017-11-06 12:07:46 lastsweetop