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

为什么选择golang写手机游戏服务器

选择golang做游戏服务器开发 经过大半年的手机游戏运营、维护、后续开发,对下一个网络游戏的服务器端开发技术选型的需求如下:1. 体系成熟,有大型成功案例2. 开发效率高3. 性能高,最好是支持并行技术充分利用多cpu资源4. 代码加密发布5. 开发逻辑简单,如多线程同步、加锁、多进程同步就比较复杂6. 易学易用,如果是新技术 可选技术对比 我对可以选择的技术平台经过自己的一些分析总结如下(一己之言): 项目 nodejs python c++/ruby erlang golang 体系成熟 4 3 5 4 3 开发效率 5 5 3 3 5 性能 3 3 5 5 4 加密发布 3 0 4 3 5 逻辑简单 5 5 3 4 5 易学易用 5 5 2 1 4 跨平台 5 5 5 5 5 其实聪...阅读全文

博文 2014-10-04 19:26:08 Creak_Phone

解数独程序分享,有问题求解!!!

下面是我写的解数独的代码,呵呵,水平有限,比较乱,但感觉解题还是比较快的,代码中的那个题号称史上最难的11级数独,不到2秒也能解出。 我有个问题,我这个程序只能得出一组答案,怎么才能得出成立的多个答案呢? 求大神帮忙看看! package main import "fmt" //数独中的单元格 type Box struct { Figure uint8 Lock bool //未填数的格可以填写的数字数目 nOp int //未填数的格可以填写的数字列表 Op []int } //数独题 t...阅读全文

golang 设计模式之选项模式

有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可,类似于 python 里面的默认参数和字典参数,虽然 golang 里面既没有默认参数也没有字典参数,但是我们有选项模式 可变长参数列表 在这之前,首先需要介绍一下可变长参数列表,顾名思义,就是参数的个数不固定,可以是一个也可以是多个,最典型的用法就是标准库里面的 fmt.Printf,语法比较简单,如下面例子实现任意多个参数的加法 func add(nums ...int) int { sum := 0 for _, num := range nums { sum += num } return sum } So(add(1, 2), ShouldEqual, 3) So...阅读全文

博文 2018-03-11 13:34:40 hatlonely

RPC 的网络复用和成帧协议 TChannel

TChannel 是用于 RPC 的网络复用和成帧协议。 ### 设计目的 * 容易用多种语言实现,尤其是 JS 和 Python。 * 高性能转发路径。中间件可以快速做出转发决策。 * 请求/回复模型不再按顺序,慢速请求不会堵在队列前头,阻止后续的快速请求。 * 大型请求/响应,可能/必须分成碎片成片,逐步发送。 * 可选 checksums. * 可用于在端点之间输送多种协议,例如 HTTP+ JSON 和 Thrift...阅读全文

开源项目 2015-08-27 16:00:00 uber

理解OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 一、应用场景 为了理解OAuth的适用场合,让我举一个假设的例子。 有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自己储存在Google上的照片。 问题是只有得到用户的授权,Google才会同意"云冲印"读取这些照片。那么,"云冲印"怎样获得用户的授权呢? 传统方法是,用户将自己的Google用户名和密码,告诉"云冲印",后者就可以读取用户的照片了。这样的做法有以下几个严重的缺点。 (1)"云冲印"为了后续的服务,...阅读全文

博文 2017-11-29 01:55:56 阮一峰的网络日志

学习Golang语言(3)

变量声明 Go语言不同于其他语言的地方在于:变量的类型在变量名之后。例如: C中: int a;而在Go中:var a int。 此外,Go语言在定义变量时候如果没有赋值,则为该变量赋值为其类型的零值。 变量声明有两种方式:使用var关键字;或者使用:= 操作符赋值。 例如: var number int //声明变量number为int数据,此时默认复制为0 number := 2 //直接声明变量number,同时赋值为2 注意 使用 := 操作符声明变量和其初始值,不必明确指明变量类型,因为初始值已经说明了变量的类型。 :=操作符同时完成了变量声明和赋值的操作。 使用:= 操作符,对于整形字面量Go语言推断其类型为int,对于浮点型字面量Go语言推断其类型为float64 对于复数字面...阅读全文

博文 2015-06-17 23:08:17 lz0426001

【译】为GatsbyJS选择一个合适的后端

文链接 Picking a back-end for GatsbyJS 作者 Ross Whitehouse 不久之前,我又心血来潮想要把我的作品集站点重做一遍(大概六个月就会有这么一次),这回,我打定主意要学着用一用Gastby。但是事情好像还没这么简单。使用Gastby完成前端部分后,你打算怎么处理后端呢?看看这篇文章吧,现在我们有非常多的选择! Gastby 背景:为什么要用Gatsby? 要说还有什么东西的选择是比无头内容管理系统(Headless Content Management System, Headless CMS)的可选项更多的,那就只有静态站点生成器(Static Site Generator, SSG)了。我们可以用Hugo(基于Golang),Jekyll(基于R...阅读全文

博文 2018-11-23 01:34:41 吴子寒

ERC721协议详解 --Solidity

pragma solidity ^0.4.20; /// Note: the ERC-165 identifier for this interface is 0x80ac58cd. interface ERC721 /* is ERC165 */ { //变更NFT所有权//NFT的创建和销毁时触发//除外情况:创建合约时,不需要transfer也可以创建和分配NFT//发起transfer时,approved address会被重置为none event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); //在NFT的approved address变更或重新确认时被触发。//z...阅读全文

博文 2018-12-19 18:34:44 kakushao

Windows Terminal 设置

最近装了WT,比powerShell的原装terminal好看一万个cmd的Terminal,值得上手,记录下我自己的配置。 自己配置之前也在网上浏览了下别人的配置,自己配下来发现和网上所说的有些差异。 profiles.json文件是保存在C:\Users\p\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState目录下的。在上级目录中提供了一个default.json文件,给出了默认的设置,然而修改这个默认文件是没有用的,该文件仅仅是告诉你默认设置是什么,如果你想改变默认设置,需要在profiles.json文件中override。 profiles.json中的设置在WT的项目页面有逐个的解释,...阅读全文

博文 2019-11-14 23:33:44 更多精彩内容WindowsTerminal尝鲜踩坑指南luyanfcpMac打造高效个性Terminal(一)之 iTerm你清澈又神秘SpringMVCjack_jerryoracle错误集合我想起个好名字Spring Boot 2.0.0参考手册_中

proto3默认值与可选项

proto3默认值与可选项 来源: kaelzhang81.github.io 内容简介:proto3默认值与可选项 本文转载自:http://kaelzhang81.github.io/2017/05/15/proto3默认值与可选项/?utm_source=tuicool&utm_medium=referral,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。 proto3默认值与可选项 背景介绍 目前开发的产品架构采用微服务架构,微服务之间通信的消息格式则使用的proto3标准协议格式。 proto介绍 全称Protocol Buffers(下面简称PB)是Google公司开发的一种数据描述语言,是一种类似 XML 但更灵活和高效的结构化数据存储格式,可用于结构化数据的序...阅读全文

博文 2020-05-09 16:35:04 XBruce

GRPC源码分析 1.代码结构以及通用组件解析

base in https://github.com/grpc/grpc-... 目录概览 可选项(Opts 包装(Wrapper 组件式编程(Builder & Regist 一次性事件(grpcsync.Event 无界channel(UnboundedBuffer 目录概览 摘要了一部分文件目录,用来描述在grpc中不同目录层级的主要作用。 grpc ├── 顶层目录(package grpc, 主要包含一些grpc提供的接口文件和涉及到具体实现的一些包装器文件 ├── clientconn.go // grpc接口文件,主要提供 Dial 接口。 ├── balancer_conn_wrappers.go // 各种包装器 *_wrappers ├── resolver_conn_w...阅读全文

博文 2020-06-04 17:33:35 pojol

[goD01] The Go Programming Language Specification

effective go这里介绍应该先完成以下内容: 语言说明书 Tour of Go (线上练习) How to write Go code This document gives tips for writing clear, idiomatic Go code. It augments the language specification, the Tour of Go, and How to Write Go Code, all of which you should read first. 2之前练习过,虽然现在忘的差不多了,3已结完成。开始啃骨头—— The Go Programming Language Specification Version of Jan 14, 2020...阅读全文

博文 2020-06-25 00:33:17 戈壁堂