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

golang 使用 iota

iota是golang语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。 举例如下: 1、iota只能在常量的表达式中使用。 fmt.Println(iota) 编译错误: undefined: iota 2、每次 const 出现时,都会让 iota 初始化为0. const a = iota // a=0 const ( b = iota //b=0 c //c=1 ) 3、自定义类型 自增长常量经常包含一个自定义枚举类型,允许你依靠编译器完成自增设置。 type Stere...阅读全文

博文 2015-01-16 18:00:01 ghj1976

golang 中strconv包用法

本文转自Golove博客:http://www.cnblogs.com/golove/p/3262925.html strconv 包中的函数和方法 // atob.go ------------------------------------------------------------ // ParseBool 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true, True // 它接受假值:0, f, F, FALSE, false, False. // 其它任何值都返回一个错误 func ParseBool(str string) (value bool, err error) package main import ( "fmt" "strconv" ...阅读全文

博文 2015-10-16 15:00:31 chenbaoke

Go语言中的单引号、双引号、反引号

=Start= 搜索关键字: golang single quotes golang double quotes golang back quotes 参考结果: 结论写在最前:在Go语言中不倾向于使用单引号来表示字符串,请根据需要使用双引号或反引号。 一个Go语言字符串是一个任意字节的常量序列。Go语言的字符串类型在本质上就与其他语言的字符串类型不同。Java的String、C++的std::string以及python3的str类型都只是定宽字符序列,而 Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示 。 Go语言中的字符串字面量使用 双引号 或 反引号 来创建 : 双引号用来创建 可解析的字符串字面量 (支持转义,但不能用来引用多行); 反引...阅读全文

博文 2016-06-16 13:00:15 diegodu

腾讯云 Game-Tech 技术沙龙小游戏专场“空降”长沙

**欢迎大家前往[腾讯云+社区](https://cloud.tencent.com/developer/?fromSource=waitui),获取更多腾讯海量技术实践干货哦~** > 本文由[腾讯游戏云](https://cloud.tencent.com/developer/user/1024461?fromSource=waitui)发表于[云+社区专栏](https://cloud.tencent.com/developer/column/1349?fromSource=waitui) ![img](https://ask.qcloudimg.com/draft/1024461/lhk5s3w7rp.jpg?imageView2/2/w/1620) 小游戏作为今年快速成长的新生态,...阅读全文

博文 2018-10-12 16:19:52 qcloudcommunity

工作5年C++服务器,转GO的感触,GO服务器业余时间整理的,用时2个月,框架到细节

之前c++服务器,是端游转过手游来的,在我不断的优化下,成功从c++98到c++11,以及32位到64位的转变,从端游服务器,转到手游服务器,上线人数单服1W+没太大压力。 go是我业余的时候接触到的,在现在大环境下,高并发和跨平台是现在开发游戏服务器的主流,之前那套c++说实在是够用,只要能达到那个量,单服性能极致,我只服c++。 skynet+lua,c底层,lua逻辑,我也过来过c++底层,lua逻辑,但实际效果是lua并不是我想要去写的,可能我对lua脚本不感兴趣。go做的事情和skynet做的大同小异,都是携程,抢占式g调度模式,go 有个goroutine和channel,skynet lua虚拟机。 当时设计go的时候,由于跟c++大轮子有点出路,c++是循环轮子模式,单...阅读全文

突然发现一个很好用Golang的json库

json 我并不想解释json是什么。 库名 GJSON 点这里去star感谢小哥 下载 $ go get -u github.com/tidwall/gjson 与官方的json解析包有什么区别 官方的包,都是一整块数据一起 包装/解析。有如下数据 struct { str1 str2 } json :{str1:"xx",str2:"xx"} 如果要单独得到str1的话,很麻烦的。 官方给的demo package main import "github.com/tidwall/gjson" const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}` func main() { value := gjson.G...阅读全文

博文 2017-05-27 09:45:09 送你一碗大麦茶

NSQ:分布式的实时消息平台

NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub,其当前最新版本是0.3.1版。NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。另外,官方还提供了拆箱即用Go和Python库。如果读者兴趣构建自己的客户端的话,还可以参考官方提供的协议规范。 NSQ是由四个重要组件构成: nsqd:一个负责接收、排队、转发消息到客户端的守护进程 nsqlookupd:管理拓扑信息并提供最终一致性的发...阅读全文

博文 2015-05-05 11:09:59 李小兵

Golang strconv包使用

// atob.go ------------------------------------------------------------ // ParseBool 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true, True // 它接受假值:0, f, F, FALSE, false, False. // 其它任何值都返回一个错误 func ParseBool(str string) (value bool, err error) func main() { fmt.Println(strconv.ParseBool("1")) // true fmt.Println(strconv.ParseBool("t")) // true fmt.Println...阅读全文

博文 2015-07-29 15:00:01 路人甲777

golang中string与byte的转换

某些场景下,函数参数需要byte类型的,已知参数是string类型的,那怎么由string类型转换成byte类型呢,比如:bufio.ReadSlice的第二个参数就是byte类型的:func(b *Reader)ReadSlice(delimbyte) (line []byte, errerror)可以通过两个方法由string得到byte,第一个是: 注意到,这里的G既不是""双引号又不是``这种go里面字符串引起来的,而是普通的单引号。第二种方法是: 这种曲折的方法,先转成[]byte,然后再取第一个...阅读全文

博文 2017-08-17 12:05:06 舒小贱

代付系统源码(支持API代付)

下载地址 系统图截 视频教程 代付系统演示 系统说明 1. 同一账户日限额20万 2. 同一账户每日最高交易15笔 3. 支持谷歌验证器登录 4. 单笔交易最低10元,最高49999元 5. 支持商户IP白名单系统功能 1. 应用管理: 同时支持公司多个业务系统对接。 2. 商户管理: 支持商户入驻,费率设置,商户需要向平台方提供相关的资料备案。 3. 渠道管理: 支持微信、支付宝、银联、京东支付等多种渠道。 4. 账户管理: 渠道账户管理,支持共享账户(个人商户)及自有账户。 5. 支付下单: 可手动批量下单、提供退款服务。 6. 通知模块: 处理第三方支付渠道的异步通知,并将处理结果同步至业务系统。 7. 对账处理: 实现支付系统的交易数据与第三方支付渠道交易明细的自动核对(通常T+1)...阅读全文

博文 2020-02-08 01:32:43 ckakarotto

Go语言中的字符和字符串

Go语言中的字符 在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。 下面用一个简单的程序来演示字符类型: package main import ( "fmt" "reflect" ) func main() { r := '我' fmt.Printf("%q的类型为:%t 二进制为:%b\n", r, r, r) rType := reflect.TypeOf(r).Kind() fmt.Printf("r的实际类型为:%s\n", rType) } 程序输出: '我'的类型为:%!t(int32=25105) 二进制为:110001000010001 r的实际类型为:int32 Go语言天生支持Unicode,那我产生一个问题:Unicode字符的长度是多...阅读全文

博文 2014-12-30 22:00:02 rubyer

Go语法简略 - 依赖注入

通过对web应用框架背后原理的探索,引入了依赖注入的概念。如果你需要读懂或者写一个框架的话,依赖注入的思想绝对能帮到你。本文记录对依赖注入的探索。 区分依赖和宿主 现在我们把问题简化一下: package main import "fmt" func MethodA(name string, f func(a int, b string)) { fmt.Println("Enter MethodA:", name) f(3030, "zdd") // 给f注入参数 fmt.Println("Exit MethodA:", name) } func MethodB(a int, b string) { fmt.Println(a, b) } func main() { d := MethodB...阅读全文

博文 2015-10-12 19:00:00 zddmail

阿里云全球首次互联网8K直播背后的技术解读

摘要: 3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案。这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播。 视频地址:https://v.qq.com/x/page/v0618atp7nr.html 舞台的屏幕上显示了从1300公里以外的阿里巴巴杭州园区传输回来的直播图像视频。 3月28日,云栖大会·深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案。这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播。 视频地址:https://v.qq.com/x/page/v0618atp7nr.html 舞台的屏幕上显示了从1300公里以外的阿里巴巴杭州园区传输回来的直播图像视...阅读全文

网易云音乐一键下载NeteaseMusicDownloader

网易云音乐一键下载工具(MusicDownloader) ![image](https://static.oschina.net/uploads/space/2017/0302/103950_Hj0A_852973.gif) Golang 写的命令行工具,把需要下载的网址粘贴到命令行中即可。 目前支持直接下载: - 歌单 http://music.163.com/#/playlist?id=****** - 单曲 http://music.163.com/#/song?id=****** - 电台节目 http://music.163.com/#/program?id=******   - 歌手 http://music.163.com/#/artist?id=*****...阅读全文

开源项目 2017-03-02 04:00:09 henson

golang并发编程实践 -- 简单生产者消费者(with chan)

本文简单介绍如何用golang实现经典的生产者消费者模型。 golang语法简洁,凡可以通过几行代码解决的事情,绝不为了解决该问题而在语言中引入不必要的特性。这个和c++正好相反,c++是个庞大的怪物,我这么形容可能很多c++的fans心里要不舒服了,为了让你在看到诸如子类言论时能够心平气和,建议大家使用一下golang吧。本文不是介绍golang编程语言本身的文章,而是从golang如何让并发编程变得容易...阅读全文

博文 2014-10-04 19:26:04 aura521521

摩根大通推荐了三只能从区块链技术长期受益的股票;币安交易量与1月相比下降90%

行情速览━━━━━CoinUp区块链研究院行情整理:比特币BTC24小时下跌1.08%,暂报6437.61美元。以太坊ETH24小时下跌1.65%,暂报211.88美元。瑞波币XRP24小时下跌4.2%,暂报0.5057美元。比特现金BCH24小时下跌4.33%,暂报752.79美元。柚子EOS24小时下跌1.46%,暂报5.53美元。 国际风向━━━━━|| XRP或将作为纳斯达克在2019年推出其加密平台时首批上市的数字货币Ripple历时四个月,推动其XRP作为纳斯达克在2019年推出其加密平台时首批上市的数字货币。纳斯达克的内部人士透漏,纳斯达克更关注数字货币的可扩展性,Ripple及其数字货币XRP可能在近期成为第二大数字货币,其市值大是重大优势;另外,Ripple的管理团队及其在...阅读全文

博文 2018-11-09 15:35:35 CoinUp区块链研究院

【有人@你】双11最时髦的消费 全宇宙的程序猿一起来HIGH

每一年,都在为媳妇买、买、买的程序猿,终于迎来了属于自己的狂欢盛宴。 没错,今年双11,阿里云会拿出若干爆款,让小伙伴们一起来high。 红包、折扣、秒杀、全场产品优惠、中奖100%…… 如何玩转阿里云双11,流量够不够都要往下拉! 1、双11当天,00:30、10:30、14:30,三场秒杀活动,云服务器ECS、云数据库RDS、弹性安全网络全部一折秒杀来袭。 2、双11当天单笔实付满1000元,即可参与抽奖,百发百中哦! 3、在校大学生双11当天享受云服务器ECS 9.9元/月+39.9元的云计算在线课程,理论+实践,才是硬本领。 4、只需实名认证,即日起登陆阿里云双11会场就能抢红包,红包最高1111元,100%中奖不掺水。 5、无论企业或个人,认证后即...阅读全文

Golang的单引号、双引号与反引号

Go语言的字符串类型string在本质上就与其他语言的字符串类型不同: Java的String、C++的std::string以及Python3的str类型都只是定宽字符序列 Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示 即:一个Go语言字符串是一个任意字节的常量序列。 Golang的双引号和反引号都可用于表示一个常量字符串,不同在于: 双引号用来创建可解析的字符串字面量(支持转义,但不能用来引用多行) 反引号用来创建原生的字符串字面量,这些字符串可能由多行组成(不支持任何转义序列),原生的字符串字面量多用于书写多行消息、HTML以及正则表达式 而单引号则用于表示Golang的一个特殊类型:rune,类似其他语言的byte但又不完全一样,是指:码...阅读全文

博文 2017-02-09 08:16:17 wiowei

GO代码实现判断字符编码格式及编码格式转换(utf-8、gbk)

引入 最近使用go开发http服务,在使用http进行通信时,发现接收报文中如果包含中文字符(非utf-8编码),直接使用go将二进制格式数据转换成字符串文本会出现乱码的情况。因为golang中的字符编码格式是utf-8,如果是其他类型的编码,例如gbk,那么直接转码后出现乱码也就理所当然了。 GBK编码格式 为了更好地说明GBK的编码方式,首先在这里先说明一下ASCII码,GB2312, GBK, GB18030的兼容性关系: 各种编码兼容关系.png ASCII编码使用一个字节的低7位(范围0-127)来表示共128个字符,最高位为0,即 0XXX_XXXX GB2312为了能表示更多字符,使用单字节和双字节来进行编码,单个字节编码与ASCII完全一样,也就兼容了ASCII码,双字节编码...阅读全文

阿里云校园公益极客大赛正式启动公益+科技+未来,打造不一样的校园赛事

2017年10月12日杭州云栖大会阿里云大学专场上,阿里云宣布启动“阿里云校园公益极客大赛”。本次大赛由阿里云大学、码上公益联合国内各大高校及合作伙伴慧科集团共同举办。阿里云客户服务部总经理、码上公益项目发起人张颖杰,阿里云大学总经理王晓斐,上海立信会计金融学院副校长顾晓敏及慧科集团CEO岳喜伟参与了发布仪式,数百位与会高校代表共同见证了此次发布。 发布会上,阿里云客户服务部总经理、码上公益项目发起人张颖杰提到:“我们走访了很多公益组织,他们都希望把自己的公益能力和公益温暖更多的传递出来。然而绝大多数公益组织苦于缺乏自身的代码能力、运维能力和运营推广能力。 我们市场内有大量的IT、云计算科技人员,他们大都怀着用技术能力去为公益贡献自身力量的热忱之心。如何将公益组织对科技、对...阅读全文

真正毕业版本=「匹兹堡大学毕业证书」PITT证书原版一模一样

匹兹堡大学毕业证书【 微/Q:939665009 —— WeChat:939665009】PITT毕业证书/美国匹兹堡大学毕业证书/联系人Ann代办国外(海外)澳洲 加拿大 韩国 美国 新西兰 等各大学毕业证书,修改成绩单分数,留信认证,文凭,diploma,degree [删除请点击百度快照]真实认证.海外回囯的同学定制毕业证书、真实认证、毕业证书、学位证书、使馆公证、囯外真实学位认证、使馆留学回囯人员证明、录取通知书、Offer、在读证明、雅思托福成绩单、网上存档永久可查![实体经营,,值得信赖]十五年致力于帮助留学生解决无法毕业,无法认证真实的难题;并帮助留学生制作国外大学毕业证书(微 Q:939665009),成绩单,真实认证、成绩单以及回国所需的真实学位真实认证。 美国匹兹堡大学毕...阅读全文

2018.9.4 最神秘的数字货币交易所

因为最近币价凉凉,所以我许久没有关注币圈了,今天打开交易所的交易额排名一看,在第一的榜单上出现了一个陌生的名字:币夫。币夫究竟是何方神圣?带着疑问,我查阅了一些资料,发现这是一家低调又神秘的交易所。17年成立于新加坡,创始人具体是谁也不知道,这点和国内很多交易所的高调作风真的是很不一样,但有传闻团队成员素质超高,平均学历在硕士以上,来自美林证券、世界银行、麦肯锡、微软、腾讯等全球知名公司。仅仅成立一年多的时间,就能顶着熊市的压力,迅速成为交易额第一的数字货币交易所,着实给力!据说,币夫有很多优秀的海外项目,特别是硅谷的明星项目,由于在上币方面他们非常严格,所以确实筛选了不少优秀项目,这样也是很大程度上减少了用户的投资风险。币夫的强势崛起,其实很值得我们思考。区块链这个行业,远还没到分胜负的时...阅读全文

博文 2018-09-04 21:25:07 kelasong

redigo设置超时时间

如果你不传入timeout的值,那么默认0值的话,这两个set deadline的逻辑就跳过了。。。如果不设置read/write timeout 会导致什么问题呢?假如网络有波动,执行一个redis 命令的时候,一直没收到服务器的响应,会导致这次请求一直没有返回,晾在那。直到redis服务器设置的超时时间到了,关闭连接,然后就会读到一个EOF的错误。单点redis的情况,如果不设置MaxActive,redispool的连接数是没有上限的,问题就不会暴露出来,这对我们的服务来说,影响也不大,就是在错误日志中,会多几条redis相关的EOF日志,但是这样真的没问题么?当然有问题,如果是从redis读消息,没有设置read timeout,一直读不到,这个协程就卡在那,迟迟不给响应,对用户来说...阅读全文

博文 2018-10-19 18:34:42 Michael_001

go 语言实现通用单链表

## 链表定义 ### 定义错误 ```go import "errors" var ( //ErrIndex 超出列表索引 ErrIndex = errors.New("out of list index") //ErrNotFound 没有找到该元素 ErrNotFound = errors.New("not found this element") ) ``` ### 定义接口 ```go // Comparer 数据接口 type Comparer interface { compare(data interface{}) bool } ``` ### 定义链表结点 ```go // SingleElement 列表结点 type SingleElement struct { Dat...阅读全文

博文 2019-07-17 09:19:21 daymenu

GO代码实现判断字符编码格式及编码格式转换(utf-8、gbk)

# 引入 C/C++的实现请看[https://www.jianshu.com/p/a83d398e3606](https://www.jianshu.com/p/a83d398e3606) 最近使用go开发http服务,在使用http进行通信时,发现接收报文中如果包含中文字符(非utf-8编码),直接使用go将二进制格式数据转换成字符串文本会出现乱码的情况。因为golang中的字符编码格式是utf-8,如果是其他类型的编码,例如gbk,那么直接转码后出现乱码也就理所当然了。 --- # GBK编码格式 为了更好地说明GBK的编码方式,首先在这里先说明一下ASCII码,GB2312, GBK, GB18030的兼容性关系: ![各种编码兼容关系.png](https://upload-ima...阅读全文

博文 2019-11-20 16:23:24 bubbleGarden

突然发现一个很好用Golang的json库

json 我并不想解释json是什么。 库名 GJSON 点这里去star感谢小哥 下载 $ go get -u github.com/tidwall/gjson 与官方的json解析包有什么区别 官方的包,都是一整块数据一起 包装/解析。 有如下数据 struct { str1 str2 } json :{str1:"xx",str2:"xx"} 如果要单独得到str1的话,很麻烦的。 官方给的demo package main import "github.com/tidwall/gjson" const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}` func main() { value := gjson....阅读全文

博文 2018-02-27 14:33:04 coder_kev

Google资深工程师深度讲解Go语言

课程地址:http://icourse8.com/go_pachong.html
课程地址:http://icourse8.com/go_pachong.html
课程目录第1章 课程介绍第2章 基础语法第3章 内建容器第4章 面向“对象”第5章 面向接口第6章 函数式编程第7章 错误处理和资源管理第8章 测试与性能调优第9章 Goroutine第10章 Channel第11章 http及其他标准库第12章 迷宫的广度优先搜索第13章 开始实战项目第14章 单任务版爬虫第15章 并发版爬虫第16章 数据存储和展示第17章 分布式爬虫第18章 课程总结 class Solution: def isMonotonic(self, A: List[int])...阅读全文

博文 2019-05-24 20:35:12 zhongjunr

如何用Go实现单链表

一、概念介绍下面这副图是我们单链表运煤车队。​每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据。前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车厢,却不知道前面是哪节车厢拉的自己。第一节车厢没有任何车厢拉它,我们就叫它车头,第五节车厢后面拉其他车厢,我们称为车尾。作为单链表它最大的特点就是能随意增加车队的长度,也能随意减少车队的长度。这是比数组公交车最大的优点。二、Go语言实现讲解1、节点​每节车厢都由车体、绳索和煤炭构成。在Go语言中表示这种自定义组合体的类型就是结构,当然为了通用性,我们这里要把车厢转换成节点也就是元素,煤炭转换成数据,绳索转换成指针。type Node struct { data Object next *Node ...阅读全文

博文 2017-11-09 06:41:27 rhan-zz

[golang]一个复杂的中文编码问题

今天在网上遇到一个问题,觉得挺有意思,就帮人解答了。 需求 在编码为Latin1的MySQL数据库中插入中文数据,由另一个系统将Latin1编码的字符串转码为GBK后作为短信内容发出。 简单版解答 import ( "golang.org/x/text/encoding/charmap" "golang.org/x/text/encoding/simplifiedchinese" ) func Convert(src string) (string, error) { gbk, err := simplifiedchinese.GBK.NewEncoder().Bytes([]byte(src)) if err != nil { return "", err } latin1, err :=...阅读全文

博文 2017-09-16 03:04:56 一桶冷水

[笔记] Golang String

1 package main 2 3 import ( 4 "fmt" 5 "strconv" 6 "strings" 7 ) 8 9 func main() { 10 // strings demo 11 Contains() 12 Join() 13 Index() 14 Repeat() 15 Replace() 16 Split() 17 18 // strconv demo 19 AppendDemo() 20 FormatDemo() 21 ParseDemo() 22 } 23 24 func Contains() { 25 fmt.Println(strings.Contains("seafood", "foo")) //true 26 fmt.Println(strings...阅读全文

博文 2016-05-05 02:00:06 loveyx

GORM 关联查询

定义了一个 User 和 Company, User 中可以包含多个 Company, 如下: type User struct { ID int `gorm:"TYPE:int(11);NOT NULL;PRIMARY_KEY;INDEX"` Name string `gorm:"TYPE: VARCHAR(255); DEFAULT:'';INDEX"` Companies []Company `gorm:"FOREIGNKEY:UserId;ASSOCIATION_FOREIGNKEY:ID"` CreatedAt time.Time `gorm:"TYPE:DATETIME"` UpdatedAt time.Time `gorm:"TYPE:DATETIME"` DeletedAt ...阅读全文

博文 2018-12-05 11:34:43 jouyouyun

小而美的公司 武汉微派网络科技有限公司 招聘新人啦! (各类职位应有尽有 总有一个是你的style)

不知道微派是哪家公司,那你总知道贪吃蛇大作战、谁是卧底online、微派桌游助手吧,没错这就是我们看似低调实则高调的团队。 微派是华科出来的小而美创业团队,专注在游戏&社交两个领域;营收很好 ,数轮融资。 公司简介: 公司16年的明星产品为贪吃蛇大作站和谁是卧底。贪吃蛇目前3亿多用户,16年77天在app store上霸榜,风靡全国,是现在休闲游戏的代表;谁是卧底也是一款十分经典的社交游戏。 1)贪吃蛇大作站,日活千万,于2016.8月-10月在app store免费榜连续70多天排名第一,是app store有史以来霸榜时间最长的APP。 目前用户1亿多,17年预计盈利5000W-1亿; 2)谁是卧底是top1的卧底游戏,多次进入app store免费榜单前30强...阅读全文

Golang算法实战之斗地主<一>

逢年过节,回到老家,玩的最多的就是打麻将、斗地主。今天要说的,就是这个经典游戏——斗地主。 一、斗地主牌面分析 斗地主需要多少张牌?大部分人都知道需要一副完整的牌即可,也就是54张牌。 2-10 黑桃、红桃、梅花、方片各4张。 J、Q、K、A 黑桃、红桃、梅花、方片各4张。 大小王各1张。 在斗地主中,牌的花色不影响。所以,在牌面比对时,不需要单独比对花色。而单张牌面值的大小顺序为: 大王>小王>2>A>K>Q>J>10……3 鉴于此,牌面的表达可以用以下方式来规定: A:黑桃 B:红桃 C:梅花 D:方片 扑克原始值 映射值 3-10 3-10数字 J 11 Q 12 K 13 A 14 2 15 小王 Q88 大王 K99 例如: A14----->黑桃A C9----->梅花9 二、如...阅读全文

博文 2018-11-07 06:34:34 皮卡丘pikaqiu

golang并发编程实践 -- 简单生产者消费者(with lock)

上一篇文章用golang中的channel实现了简单的消费者模型,下面的版本是用传统的锁技术实现的版本,相对比会发现golang提供的channel更好用。而且golang的channel可以完成很多在别的语言里需要很多代码才能实现的功能。以后陆续解答。 package main import ( "fmt" "sync" "time" ) type Queue struct { Elem []int Capacity int Front int Rear int Lock sync.Locker Cond *sync.Cond } func New() *Queue { theQueue := &Queue{} theQueue.Capacity = 10 theQueue.Elem = ...阅读全文

博文 2014-10-04 19:26:11 aura521521

开源消息系统 NSQ

NSQ 是无中心设计、节点自动注册和发现的开源消息系统。可作为内部通讯框架的基础,易于配置和发布。 架构: ![nsqd clients](http://static.oschina.net/uploads/img/201501/27073634_i5Ye.gif) 监控界面: ![nsqadmin](http://static.oschina.net/uploads/img/201501/27073635_MSMt.png) 无单点故障: ![nsq clients](http://static.oschina.net/uploads/img/201501/27073636_C0sa.png) 特点: * 追求简单部署 * 追求高可用、避免单点故障、无中心设计 * ...阅读全文

开源项目 2013-08-12 16:00:00 bitly

使用 Go 基于 RabbitMQ 实现的消息中间件wmq

WMQ是用golang基于RabbitMQ实现的消息中间件,在系统架构对解耦现有业务起到至关重要的作用,服务基于HTTP的API方式具有跨语言的特点,接入十分简单.能够很好的解决并发控制,异步任务,以及消息订阅与分发.工作原理架构图如下: ![image](https://static.oschina.net/uploads/space/2017/1017/110028_7bml_3703517.png) 特点: 跨语言,基于HTTP协议. 高性能,测试环境下消息生产速率达到3000个/s,而且性能毫无下降,瓶颈出现在后端RabbitMQ上. 提供了web-ui管理系统,对服务进行管理 跨平台,运行简单,直接运行一个二进制文件. 支持集群部署,避免单点故障. 完全实现了R...阅读全文

Golang 格式输出符号

%d int变量 %x, %o, %b 分别为16进制,8进制,2进制形式的int %f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00 %t 布尔变量:true 或 false %c rune (Unicode码点),Go语言里特有的Unicode字符类型 %s string %q 带双引号的字符串 "abc" 或 带单引号的 rune 'c' %v 会将任意变量以易读的形式打印出来 %T 打印变量的类型 %% 字符型百分比标志(%符号本身,没有其他操作...阅读全文

博文 2019-05-05 04:31:50 zhengzizhi

【武汉】做贪吃蛇大作战的公司 武汉微派 急招golang服务器开发工程师

不知道微派是哪家公司,那你总知道贪吃蛇大作战、谁是卧底online、微派桌游助手吧,专注在游戏&社交两个领域;营收很好 ,数轮融资,比较低调。目前是B轮融资,巨人网络投资 公司简介: 公司16年的明星产品为贪吃蛇大作站和谁是卧底。贪吃蛇目前3亿多用户,16年77天在app store上霸榜,风靡全国,是现在休闲游戏的代表;谁是卧底也是一款十分经典的社交游戏。 1)贪吃蛇大作站,日活千万,于2016.8月-10月在app store免费榜连续70多天排名第一,是app store有史以来霸榜时间最长的APP。 目前用户3亿多,17年盈利8000W-1亿; 2)谁是卧底是top1的卧底游戏,多次进入app store免费榜单前30强,千万级用户,年收入千万; 因业务发展迅猛...阅读全文

浅谈滚服游戏如果实现一键合服

[原文链接](http://www.bugclosed.com/post/12) : http://www.bugclosed.com/post/12 ## 背景 近几年的游戏行业中,出现了各种各样的滚服游戏,包括页游,手游,H5游戏等等。滚服游戏和大服游戏的区别在于同时游戏人数,大服游戏是有很多用户在一起玩,甚至几十上百万玩家。而滚服游戏则一般会设计游戏在线上限,比如3000,达到上限则新开一组服务器,并引导用户进入新区。 滚服模式是游戏类型,技术架构和急功近利的坑钱策略等因素共同决定的,大服游戏包括绝大部分端游,以及类COC这样类型的游戏。另外,虽然像英雄联盟,王者荣耀这样的游戏也分服架构,但是这个并不是我理解中的“滚服游戏“,首先他们虽然分服,但是每个服的人数上限也是可以高达几十万,他...阅读全文

博文 2018-05-24 16:15:26 pert

golang 导出 csv文件

csv文件可以直接用Excel打开 csv方式导出,可以像导出txt一样,以文本流的方式进行流式处理,不但能导出海量信息,而且流式处理占用内存极低,服务器对浏览器的响应也是非常迅速的。 导出纯数字构成的字符串,在excel中打开csv时,容易被识别成数字,造成误解。一般加上"\t",也有人采用加" ' "单引号 等解决方式。 实现代码 package main import ( "encoding/csv" "fmt" "os" "sort" "time" ) func main() { // 不存在则创建;存在则清空;读写模式; file, err := os.Create("person_list.csv") if err != nil { fmt.Println("open file ...阅读全文

博文 2019-11-01 17:34:01 aside section._1OhGeD

消息中间件NSQ深入与实践

1. 介绍最近在研究一些消息中间件,常用的MQ如RabbitMQ,ActiveMQ,Kafka等。NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。官方和第三方还为NSQ开发了众多客户端功能库,如官方提供的基于HTTP的nsqd、Go客户端go-nsq、Python客户端pynsq、基于Node.js的JavaScript客户端nsqjs、异步C客户端libnsq、Java客户端nsq-java以及基于各种语言的众多第三方客户端功能库。 1.1 Features1). DistributedNSQ提供了分布式的,去中心化,且没有单点故障的拓扑结构,稳定的消息传输发布保障,能够具有高容错和HA(高可用)特性。2). Sc...阅读全文

博文 2017-10-09 05:30:46 Aoho's Blog

2017年8月编程语言排行榜:大数据时代,Python、Go依然强劲

2017年8月编程语言排行榜:大数据时代,Python、Go依然强劲 2017-08-06 10:00 来源:大数据技术 大数据 原标题:2017年8月编程语言排行榜:大数据时代,Python、Go依然强劲 程序猿(微信号:imkuqin) 猿妹 整编 TIOBE编程语言社区发布了 2017 年 8 月排行榜,和上个月相比,前五名没有变化,Java、C、C++、C# 和 Python 仍然稳定保持在前 5 的位置。不过比例都有不同程度的下降。 尽管 Java 仍然稳居第一,但最值得注意的是 Java 本月跌破13%,今年接下去是否还是能一如既往保住第一的宝座,我们拭目以待。 Go 语言和 7 月份相比从前 10 回落 第 16 名,但总体趋势还算平稳。自从谷歌宣布了安卓开发全面支持 Kotl...阅读全文

博文 2017-08-08 02:08:20 猿妹

go 链表反

链表操作是数据结构中基本的操作,下面用golang实现一下链表的基本操作,包括增、删、查以及单链表的反转操作。package linkimport ( "fmt" "github.com/pkg/errors")//链表结构type ListNode struct { data int next *ListNode}//初始化链表头,下面的所有操作都是基于带头链表func NewListNode() *ListNode { return &ListNode{next: nil}}//获取链表的长度func (l *ListNode)Length() int { len :=0 for l.next != nil { len++ l = l.next } return len}//插入节点fu...阅读全文

博文 2018-10-15 12:34:41 GoSnail

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

摘要: 近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。 近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。 先跟大家聊一下什么叫时序数据。简单的说,就是时间上分布的一系列数值,关键字是数值,我们一般认为的时序数据是什么时间发生了什么事情,但是在时序数据这个领域里定义的时序数据全都是跟数值有关的。也就是说,如果只是一个带有时间戳的一条数据并不能叫做时序数据。举个例子,比如像我早上8点半上楼吃了个饭这条记录,相当于一个日志,这个本身不构成一个时序数据,但是如果某个餐厅早上8点...阅读全文

TIOBE 发布 3 月编程语言榜单:Go 冲进前十,Delphi 没落

☞200页!分享珍藏很久的Python和Linux学习知识手册☜TIOBE 公布了2020年3月的编程语言排行榜TOP 20的榜单如下:C语言不愧是年度编程语言,以3.03%的年增长率继续大幅领先。年增长率较高的还有Java(2.90%)、C#(2.95%)和Python(1.85%)。整体上来看,排名前10的语言基本都稳定如常。本月冲出了Go 语言这匹黑马,一路挤进前十。去年同期,Go排在第18位,前两个月的榜单中,Go上升到第14位,然后持续爬升,终于在3月进入前十。本月最值得关注的语言比较令人意外:Delphi即将跌出TIOBE指数前20名。这大概是 Delphi最终没落的迹象。自2001年6月TIOBE指数存在以来,Delphi一直位居前20名,在2000年代初,它是最流行的语言和I...阅读全文

博文 2020-03-06 21:33:11 程序员SHZ