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

《The Way to Go》中文版《Go入门指南》

**《The Way to Go》**经原作者授权今日起以每日一小节的进度开始翻译,中文名**《Go入门指南》**。 本书以开源书籍的形式分享在Github上,提供给有需要的Go语言爱好者。 如果有翻译不当的地方,还望大家能够 **pull request** 以为本书提供更好的翻译质量。 repo地址:[https://github.com/Unknwon/the-way-to-go_ZH_CN][1] [1]: https://github.com/Unknwon/the-way-to-go_ZH_C...阅读全文

使用GoLang实现文件远程传输

2015-08-23 wcdj GoLang的文件操作的大多数函数都是在os包里面(http://127.0.0.1:8080/pkg/os/)。 os Package os provides a platform-independent interface to operating system functionality. 本文使用GoLang实现一个类似scp的远程文件传输工具,由client和server两部分组成,client根据用户指定的文件发送的分段大小创建多个coroutine来并发发送文件,而server再将收到的请求还原成文件写到本地目录。 代码及用法请参考GitHub...阅读全文

博文 2015-12-25 14:00:01 delphiwcdj

golang time的几种用法

首先说明golang 语言设计设有个叫 XXnuts的家伙,果然是个变态,把时间原点设计在了 2006-01-02 15:04:05 其实人家这个日期是有意义的: 2006-01-02T15:04:05Z07:00 每个数字的意义: 1 2 3 4 5 6 7 月 日 时 分 秒 年 时 区 常用的方法: 1 toTime格式化(Parsing): 用法一: 使用毫秒数 t := time.Unix(1362984425, 0) nt := t.Format("2006-01-02 15:04:05") fmt.Println(nt) 用法二: 使用固定的字符串进行格式化获得time 对象 const TimeFormat = "2006-01-02 15:04:05" func TestX...阅读全文

博文 2014-10-04 19:26:54 磊_子

go语言 string数据类型格式

在go语言里面定义字符串如下: var ss string = "12345" 对于一个熟悉C/C++的程序员来说,马上就会想到这个string是一个什么内容,占多大空间,内存如何分配等,下面我们来分析这个问题。 go语言的string是一种数据类型,这个数据类型占用16字节空间,前8字节是一个指针,指向字符串值的地址,后八个字节是一个整数,标识字符串的长度;注意go语言的字符串内部并不以'\0'作为结尾,而是通过一个长度域来表示字符串的长度。 type mystr struct { strbuf uintptr; strlen uint64; } 上述就是string的类型定义。下面我们通过代码来验证这个问题: package main import ( "fmt" "unsafe" //...阅读全文

GO处理一些未知结构的JSON,纠结一个星期了

这是elasticsearch的返回结构,aggregations中的user、tags、ct等都是不可预知的字段,要如何取出这些结构,并还原成一维map? ```json { "took": 2, "timed_out": false, "_shards": { "total": 5, "successful": 3, "failed": 0 }, "hits": { "total": 22, "max_score": 0, "hits": [] }, "aggregations": { ...阅读全文

【go共识算法】-PBFT

实用拜占庭容错系统介绍 由来 原始的拜占庭容错系统由于需要展示理论上的可行性而缺乏实用性。另外,算法的复杂度也是随节点的增加而呈指数级增加。实用拜占庭容错系统(Practical Byzantine Fault Tolerance, PBFT)降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别,使拜占庭协议在分布式系统中应用成为可能。 什么是实用拜占庭容错系统 实用拜占庭容错系统是一类“状态机”拜占庭系统(这里的状态机可以理解为“系统状态”,以区块链记账为例,系统每新增一个区块,账本就更新到一个新的状态。前面讲过,拜占庭容错系统是一个强一致性协议,每次记账后系统都会达成新的状态。),要求系统所有节点共同维护一个状态,所有节点采取的行动一致。 实用拜占庭容错系统需要运行三类基本协议: 一...阅读全文

博文 2018-10-10 17:34:44 jincheng828

Golang 时间格式化的奇怪设定 —— 为什么你一直出错

首发于:http://blog.shajiquan.com/2015/12/golang-time-format/ 今天有人在群里问: 问一个时间格式化问题: fmt.Println(time.Now().Format("2006year 01month 02day")) 2015year 12month 18day fmt.Println(time.Now().Format("2015year 01month 01day")) 181253year 12month 12day 为什么? 困扰好久 首先,这是一个很奇葩的问题。 其次,我,以及比我对 Golang 更了解的朋友,都掉过这个坑。我们曾在这个问题上,花了很多时间,最后发现是 Golang 自己的奇怪设定导致。尤其是,一段时间不用 ...阅读全文

博文 2017-02-09 08:10:28 shajiquan

拜占庭容错系统简介

拜占庭容错系统简介 原始的拜占庭容错系统由于需要展示理论上的可行性而缺乏实用性。另外,算法的复杂度也是随节点的增加而呈指数级增加。实用拜占庭容错系统(Practical Byzantine Fault Tolerance, PBFT)降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别,使拜占庭协议在分布式系统中应用成为可能。 什么是实用拜占庭容错系统 实用拜占庭容错系统是一类“状态机”拜占庭系统(这里的状态机可以理解为“系统状态”,以区块链记账为例,系统每新增一个区块,账本就更新到一个新的状态。前面讲过,拜占庭容错系统是一个强一致性协议,每次记账后系统都会达成新的状态。),要求系统所有节点共同维护一个状态,所有节点采取的行动一致。 实用拜占庭容错系统需要运行三类基本协议: 一致性协议:...阅读全文

博文 2018-08-06 11:34:52 kakushao

7_11_ F题 Infinite Go(并查集)

7_11_ F题 Infinite Go(并查集) 简单题意 按围棋规则落子,给出每次落子的坐标,问最后棋盘上剩余的黑白子的数量 思路 用并查集来维护棋盘上的的联通块的气,然后就按照围棋规则去模拟就好了,注意提子之后要把对应的位置还原成可用状态,可有气,可落子,这题细节较多,要注意。 代码 #include using namespace std; const int maxn = 1e4+10; int mov[4][2] = {{1,0},{-1,0},{0,1},{0,-1}}; int fa[maxn]; set > space[maxn]; map,int>M ,idx; void init...阅读全文

博文 2016-09-04 11:00:01 baidu_19306071

Golang对象中的value与pointer

开宗明义 不是我喜欢装,要用什么value与pointer,而不说值与指针。实在是后面还要讲receiver时,实在不知道怎么说,但是value receiver与pointer receiver就好多了。 面向对象 如果一门编程语言哪一天不说面向对象了,那还真的是一件很奇怪的事情。即使是函数式语言,或者是C语言,都会以某种程度来说是怎么样实现面向对象的语义。面向对象,就是程序封装里面一道跨不过去的坎。 Golang中和面向对象形式上特别简单,就是给函数function定义加一个receiver,那么就变成了方法method了。如: type A struct { } func (a A) DoSomething() { /* 你在这里做了些什么事情 */ } a := new A(); a...阅读全文