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

golang学习实例-猜拳小游戏

学了一段golang,觉得应该实践一下,写了这个猜拳小游戏,顺带着学习下go testing。 主程序源码: package main import ( "bufio" // 输入输出 "fmt" "math" "math/rand" "os" "strconv" "time" ) //rock, paper, scissors const ( rock int = 1 scissors int = 2 paper int = 3 rockName string = "石头" scissorsName string = "剪刀" paperName string = "布" win int = 1 lose int = -1 draw int = 0 ) // 拳的结构 type Finge...阅读全文

博文 2015-06-17 20:03:59 hnxxwyq

Web流量复制和压力测试工具Gor

Gor概述Gor 是用 Golang 写的一个 HTTP 实时流量复制工具。只需要在 LB 或者 Varnish 入口服务器上执行一个进程,就可以把生产环境的流量复制到任何地方,比如 Staging 环境、Dev 环境。完美解决了 HTTP 层实时流量复制和压力测试的问题。 Image.png Gor的功能Gor 支持流量的放大和缩小、频率限制,这样不需要搭建和生产环境一致的服务器集群也可以正确测试。Gor 还支持根据正则表达式过滤流量,这意味着可以单独测试某个 API 服务。还可以修改 HTTP 请求头,比如替换 User-Agent, 或者增加某些 HTTP Header 。Gor 还可以把请求记录到文件,以备回放和分析。Gor 支持和 ElasticSearch 集成,将流量存入 ES...阅读全文

博文 2017-04-12 02:32:13 Lu离尘

go-oci8编译安装过程(有别于官方说明)

go-oci8下载地址以及说明地址:https://github.com/wendal/go-oci go-oci8官方说明 安装最新版的git,并设置可以从命令行直接调用git命令 这个步骤多一些 2.1 下载OCI最新版,存放于C:\instantclient_11_2 2.2 下载OCI SDK最新版,存放于C:\instantclient_11_2\sdk 2.3 下载MinGW最新版,安装在C:\mingw 2.4 下载pkg-config.exe和oci8.pc (已经存放在windows文件夹下) 2.5 将pkg-config.exe复制到C:\mingw\bin\下 2.6 将oci8.pc复制到C:\mingw\lib\pkg-config\下 修改系统环境变量,添加 P...阅读全文

博文 2017-02-09 08:11:31 阿修罗王

Go 实现的中国行政区划查询工具 Administrative Divisions

一个 Go 语言实现的中国行政区划查询工具。 介绍 最新中国行政区划,数据来源:[http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201608/t20160809_1386477.html](http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201608/t20160809_1386477.html) 安装

go get -v github.com/orivil/administrative-divisions
如果中国地区用户出现 `godoc.org/golang.org/x/net...阅读全文

开源项目 2016-08-29 04:00:07 orivil

把别人的Tcl/Tk代码加入到Go语言里15 游戏8 翻牌游戏

这次文章主要引用了网上的这篇教学http://www.cwflynt.com/TclForTeens/ 步骤a 下载第17课里提到的扑克图像包 http://www.cwflynt.com/TclForTeens/cards.zip 解压缩cards.zip内所有文件到c:\cards\目录下 【你可以放在桌面的cards目录里,随意】 步骤b 跳到第20课http://www.cwflynt.com/TclForTeens/lsn20.html 找到最后一段框起来的源代码,它的上一句是“And that's all the changes. Here's the complete game.” 把这段框起来的代码复制到如下go代码的字符串常量里 package main import "g...阅读全文

博文 2015-05-14 08:00:00 名字不能长

Creating a Metricbeat Module

https://www.elastic.co/guide/en/beats/devguide/current/index.html 一、本地正确安装golang yum install -y golang 或者https://golang.org/doc/install二、设置好GOPATH vim ~/.bash_profile export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin export GOPATH=/usr/local/go三、获取metricbeat源码 将beat克隆下来,目录为$GOROOT/$yourdirectory/src/github.com/elastic/beats git clonehttps:/...阅读全文

博文 2018-07-22 18:34:50 CadenOF

深圳年薪55万,西安20万,你会选择哪个城市?

最近联系上深圳某知名大厂的一哥们,是一位高级开发工程师,收入也不错,年薪55万。刚好深圳有一家不错的公司需要他这样的技术人才,便与他聊起来,但被他拒绝了,原因是他想回西安发展,不想待在深圳了。 我很好奇他为什么会做这样的选择,于是便开始问他。他的答案很简单,深圳房价太高了,而且在深圳想找到年薪100万以上的工作,也不是那么容易的事。这样想也不是没道理,于是我也帮他了解一下西安的就业行情,他如果回西安的话,薪资起码缩水60%。于是我劝他慎重考虑,但是他很坚定,说没什么好考虑的,留在一线城市也无非是给别人搬砖,并说他现在这点薪资也是靠拼命加班才有的,几乎每天都是十点钟以后下班,KPI还很重,总的来说就是很苦逼!所以他觉得在非一线城市,还能过得轻松一些,即使拿的钱比现在少很多。聊到这里,我也开始理...阅读全文

博文 2018-09-22 21:01:53 kelasong

go语言基础教程2

array 数组声明--var arr [10]int,array由[n]定义。n表示数组大小,type表示数组类型 声明且初始化--arr := [3]int{1,2,3}或者不写大小var arr := [...]int{1,2,3}或者var arr = [3]int{1,2,3},如果不写大小可以用三个点来表示,go会自动识别,var arr[3]int默认是初始化为0。 ps:记住:=和=之间的区别,如果是:=不需要var,如果是=需要var 二维数组初始化a := [2][2]int{ [2]int{1,2}, [2]int{3,4} },a := [2][2]int{ [...]int{1,2}, [...]int{3,4} },a := [2][2]int{ {1...阅读全文

博文 2014-10-04 19:26:42 GODYCA

把别人的Tcl/Tk代码加入到Go语言里1

a 首先打开网页 http://wiki.tcl.tk/12977 b 把网页了提到的代码复制到go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里run ,运行效果如...阅读全文

博文 2015-05-01 14:00:01 名字不能长

docker中安装gogs服务

大家好,之前有发布过一篇gitlab安装在docker的文章,可能由于系统环境的差异,很多人向我反馈安装失败了。为了解决大家的问题,我重新写了一篇文章,更换了git所使用的service服务器端软件。下面我先介绍一下这个service服务器端软件。Gogs 是一款使用golang编写的轻量的、开源的、自助式Git托管服务。其功能与 github 及 gitlab 比较相似,不过gogs的部署要比前者简单的多,而且其功能也比较轻量。它是用 Go 语言写的,能兼容各个系统。它能运行于 Windows,MAC,Linux,ARM 等。同事gogs也是目前我所见过的所有git service中安装最简单的了。下面介绍下安装方法:一、创建containergogs的web端口是3000是,所以我创建c...阅读全文

博文 2017-07-14 06:06:37 jevian

Go1.11 module 简明使用指南

Go Mod 命令 download download modules to local cache (下载依赖的module到本地cache)) edit edit go.mod from tools or scripts (编辑go.mod文件) graph print module requirement graph (打印模块依赖图)) init initialize new module in current directory (再当前文件夹下初始化一个新的module, 创建go.mod文件)) tidy add missing and remove unused modules (增加丢失的module,去掉未用的module) vendor make vendored co...阅读全文

博文 2019-01-23 11:34:45 柳浪闻笛

我为什么选择go语言

这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来,我打算在现有项目中的推送系统中使用c++,并用业余时间写好了一个网络底层库libtnet,但后来还是决定打住,因为没有人能够协助我开发。令我比较欣慰的是,libtnet有一个游戏公司在使用,现处于内部测...阅读全文

博文 2014-10-04 19:26:00 siddontang

golang validators 对 Struct 的字段校验

1、需求: 有时我们需要对接收到的struct字段内容进行验证,比如: type Student struct { Uid int64 Name string Age int64 Sex string Email string } 我们需要对结构体内的字段进行验证合法性: Uid的值在某一个范围内 Name值的长度在某一个范围内 Sex的值符合男或女 Email格式正确等等 2、安装: go get github.com/smokezl/govalidators 3、先来个简单例子,通过golang的structTag来配置验证器: type Class struct { Cid int64 `validate:"required||integer=10000,_"` Cname strin...阅读全文

博文 2019-08-02 21:32:42 LLL_小浪

golang 使用 protobuf 的教程

1、下载protobuf的编译器protoc 地址: https://github.com/google/protobuf/releases window: 下载: protoc-3.3.0-win32.zip 解压,把bin目录下的protoc.exe复制到GOPATH/bin下,GOPATH/bin加入环境变量。 当然也可放在其他目录,需加入环境变量,能让系统找到protoc.exelinux: 下载:protoc-3.3.0-linux-x86_64.zip 或 protoc-3.3.0-linux-x86_32.zip 解压,把bin目录下的protoc复制到GOPATH/bin下,GOPATH/bin加入环境变量。 如果喜欢编译安装的,也可下载源码自行安装,最后将可执行文件加入环境...阅读全文

博文 2018-09-05 13:30:01 itevol

macbook 下安装Goglang 以及安装svn插件所遇到的问题

新入手了一个Macbook pro,打算重新配置下自己的开发环境,老的mac毕竟硬盘太小了,所以这次换了个1T的,好了闲话不说了,主要记录下我在安装idea系列产品中遇到的问题和解决办法。 安装JetBrains的Gogland产品,下载,安装,很顺利,没毛病。 因为公司是使用svn来管理代码的,所以必须使用svn插件,这时候问题来了: 因为官方下载的subversion插件,只支持1.8,而新的os x默认安装svn的是1.9.4,而且不知道是网络原因还是其他什么原因,subversion一直就下载不了。 然后我从我的win下,把对应的插件包,svn4idea和svntoolbox全部给复制到mac上,这个地址一般在C:\Users\Administrator\.Gogland1.0\co...阅读全文

博文 2017-08-13 05:35:00 阿修罗王

go语言 Hello World

go语言是google发布的编程语言,已经有了第一个正式版本 go编译速度很快,是编译型语言 hello.go package main import "fmt" func main() { fmt.Printf("Hello,World!") }运行结果: package main 是指go文件的开头标志 import "fmt" I/O库,是将fmt库加载到文件中来 func main() go程序执行的第一个函数 fmt.Printf fmt库中的输出语...阅读全文

博文 2014-10-04 19:26:02 chuangrain

初识GO语言——安装Go语言

本文包括:1)安装Go语言。2)运行第一个Go语言。3)增加vim中对Go语言的高亮支持。 1、安装Go语言 本文采用源码安装Go语言,Go语言的源代码在百度网盘 http://pan.baidu.com/s/1mguZqhM 1.1、修改环境变量 编辑文件~/.bashrc vim ~/.bashre 在文件最后添加如下代码 # about go language export GOROOT=$HOME/go export GOARCH=386 export GOOS=linux export GOBIN=$HOME/bin 1.4、解压 tar xzf go1.3.3.linux-386.tar.gz $ls go go1.3.3.linux-386.tar.gz 1.5、把go目录移动...阅读全文

博文 2015-03-07 03:00:00 fengbohello

Go语言从入门到精通-03 | 复杂数据类型

有的时候基本的数据类型可能不能满足我们开发的需求,我们可能需要一些数据类型的组合。比如我们要把一个班级里面所有人的平均成绩存在一起,然后计算整个班级的平均成绩。大家想一下,这种情况下应该用什么类型的变量? 数组 接着上面我们举的例子,如果要计算平均成绩怎么办呢?这就用到了数组的概念。数组从字面上理解就是一组数,它是指类型相同的一组数。这组数在内存中是顺序存储的,因此,我们可以通过数组名字的索引来访问其中的数据,而不同定义多个变量。 图1 数组内部结构示意图 如图1是数组内部结构的示意图,我们可以通过数组的索引访问数组内部的数据。通常数组的索引是从0开始的,0表示第一个元素。下面我们给出一个Go语言的具体示例: 上面数组数量,如果有初始化的情况下可以不必指定大小,此时编译器会根据初始化的数据数...阅读全文

博文 2019-03-21 15:35:14 qq5c822f9bb7f5c

go语言

Go 语言环境安装 下载 go语言直接下载下载不动,我先下载了Lantern,安装完Lantern 后会自动打开浏览器 然后把要下载的go(https://golang.org/dl/)语言地址复制到lantern 所在的地址下载就可以下载了。 安装 双击运行安装程序 点击next ,选择安装路径,最后安装完成。 配置环境变量 “新建”系统变量:设置变量名GOROOT,变量值D:\Soft\Go(安装目录) 修改系统变量Path,添加D:\Soft\Go\bin 通过cmd查看是否安装成...阅读全文

博文 2017-12-18 11:01:02 yanzi9016

vim+go配置

安装好go后,需要先设置如下环境变量: GOROOT:Go的安装目录 GOPATH:用于存放Go语言Package的目录,这个目录不能在Go的安装目录中 GOBIN:Go二进制文件存放目录,写成%GOROOT%\bin就好 1,安装gocode,设置自动补全代码。 go get -u -ldflags -H=windowsgui github.com/nsf/gocode,如果成功,GOBIN目录下会有gocode.exe文件,GOPATH 下会有src\github.com\nsf\gocode目录。vim安装目录中的_vimrc文件添加 filetype plugin indent on syntax on 此时Ctrl+P组合键即可唤出补全代码提示。 2,设置golang语法高亮。 下...阅读全文

博文 2016-09-04 09:00:02 qu_tao

go项目make

1,go下载安装 这里写链接内容 2,编译顺序。 先source base 后source devtools 3,导入到path方法 export PATH=/bin:$PATH $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); ...阅读全文

博文 2016-02-26 19:00:01 guoer9973

把别人的Tcl/Tk代码加入到Go语言里13 游戏6 消除方块

a 首先打开网页 http://wiki.tcl.tk/10287 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如...阅读全文

博文 2015-05-13 16:00:06 名字不能长

把别人的Tcl/Tk代码加入到Go语言里5 柱形图

a 首先打开网页 http://wiki.tcl.tk/13680 b 把网页里提到的每一段代码复制到go源代码的init_script字符串常量里 【注意,直到最后一段代码结尾是 bind . {exec wish $argv0 &; exit} 如果我没数错的话一共是7段代码,前面是6个proc代码段, 最后一段代码里倒数2行代码可以去除掉】 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里run ...阅读全文

博文 2015-05-01 15:00:06 名字不能长

把别人的Tcl/Tk代码加入到Go语言里8 游戏1 trains火车【这货很长很长】

a 首先打开网页 http://wiki.tcl.tk/1359 【trains3.tclUpdated 2012-12-09 19:44:49 by pooryorick】 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如下 【这700行代码的游戏画面简略抓了7张风景,没把...阅读全文

博文 2015-05-13 16:00:07 名字不能长

Golang select常见用法

go语言的select和poll有点类似,监听多个channel,当channel上可读时,执行对应的操作。基本用法: ch1 := make(chan bool) ch2 := make(chan bool) ..... for { select { case <-ch1: case <-ch2: default: } } 要注意的时,select和switch有点类似,但select的case后只能是IO操作。上述程序的执行过程是这样的,程序进入select后,如果没有case中的channel可读,则阻塞,直到有channel可读;如果仅有一个channel可读,则执行这个case;如果有多个channel可读,则随机公平地选出一个case执行,其他不会执行。 在写程序时一个非常典型的...阅读全文

博文 2017-07-26 13:06:45 chnmagnus

把别人的Tcl/Tk代码加入到Go语言里10 游戏6 消除方块

a 首先打开网页 http://wiki.tcl.tk/10287 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如...阅读全文

博文 2015-05-13 14:00:04 名字不能长

Golang里调用C

Golang里调用C 2010-04-18 13:21:28| 分类:积累 | 标签:|字号大中小 订阅 Golang调用C分两个步骤:1 写一个C的wrapper,这个很简单;2 对wrapper做编译,这个步骤有点复杂,而且涉及众多中间文件。应该是有办法用自动化的工具简化这个过程的。 先来展示一下C程序。为了将描述集中在如何调用上,C的程序很简单: prints.h #ifndef PRINTS_HEAD void prints(char* str); #endif prints.c #include "prints.h" #include void prints(char* str) { printf("%s\n", str); } 之后是Golang对C的一个wr...阅读全文

博文 2015-06-17 20:02:16 x_focus

把别人的Tcl/Tk代码加入到Go语言里14 游戏7 行星游戏

a 首先打开网页 http://wiki.tcl.tk/13601 b 把网页里提到的第一段tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如下 小飞机的控制: Left Arrow - rotate CCW Right Arrow - rotate CW Up Arrow - Thrust S...阅读全文

博文 2015-05-13 15:00:07 名字不能长

学习编程的25个“坑”,你踩到了吗?

学习编程的过程中可能会遇到“25”个“坑”,不仅初学者可能中招,专业人士有时也难以逃脱,我自己也毫不例外。0. 忽视了编程终究是以人为本的。是的,机器的确会执行你的代码,但编程是为人们解决问题的,将他们的需求转换为由其他人(或你自己线下)读取,维护和修改的代码。1. 未能花充足的时间练习编程。 根据工作或日程安排,你可能会花费大量时间在与编程相关的任务上,但实际上这些并非编程本身。2. 停留在你正在学习的某个技术的表面。 沾沾自喜于自己掌握了足够完成任务的基础知识,对技术的了解却只流于表面,未有触及核心内容。3. 在编程学习中挑挑拣拣,无法持之以恒。一开始学习Rails,半道儿你发现Phoenix也不错,哦,学点JavaScript吧,这样就能用Node.js 了......从TJ转到Go然...阅读全文

博文 2018-10-25 18:34:40 西安北大青鸟官微

把别人的Tcl/Tk代码加入到Go语言里11 游戏4 红心游戏

a 首先打开网页下载tcl/tk游戏源码http://sourceforge.net/projects/tkgames/files/latest/download?source=typ_redirect b 把压缩包里的tcl/tk源代码文件tkHearts-0.90用文本编辑器打开,并把所有内容 复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里...阅读全文

博文 2015-05-13 13:00:01 名字不能长

把别人的Tcl/Tk代码加入到Go语言里8 游戏1 trains火车【这货很长很长】

a 首先打开网页 http://wiki.tcl.tk/1359 【trains3.tclUpdated 2012-12-09 19:44:49 by pooryorick】 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如下 【这700行代码的游戏画面简略抓了7张风景,没把...阅读全文

博文 2015-05-13 08:00:01 名字不能长

把别人的Tcl/Tk代码加入到Go语言里14 游戏7 行星游戏

a 首先打开网页 http://wiki.tcl.tk/13601 b 把网页里提到的第一段tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如下 小飞机的控制: Left Arrow - rotate CCW Right Arrow - rotate CW Up Arrow - Thrust S...阅读全文

博文 2015-05-13 16:00:05 名字不能长

把别人的Tcl/Tk代码加入到Go语言里10 游戏5 画图案?

a 首先打开网页 http://wiki.tcl.tk/4206 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如...阅读全文

博文 2015-05-13 14:00:04 名字不能长

Mac OS 开发环境 Terminal 配置

Mac OS 开发环境 Terminal 配置 --- [TOC] ### Terminal 主题选择 Mac OS 内置主题已经很不错很好看,如果不满意系统自带主题,可以自定义配置。这里推荐下面的配置文件,下载下来,直接导入就好。 [https://github.com/chriskempson/tomorrow-theme](https://github.com/chriskempson/tomorrow-theme) ### Vim 配置.vimrc ```shell $ touch ~/.vimrc ``` 配置内容如下: ```shell syntax on " 自动语法高亮 "colorscheme molokai " 设定配色方案 "set nocompatible " 关闭 ...阅读全文

博文 2017-12-26 03:36:01 jzhongming

把别人的Tcl/Tk代码加入到Go语言里9 游戏2 可旋转的3D多面体

a 首先打开网页 http://wiki.tcl.tk/14283 【3D polyhedra with simple tk canvas Updated 2014-10-24 21:38:58 by ZB 】 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如...阅读全文

博文 2015-05-13 16:00:07 名字不能长

(双语)Go语言的更新也将难逃疫情影响

Go语言经常被称为“Golang”,是一门高效、易学、受到广泛应用和开发者喜爱的计算机编程语言。一般情况下,Go语言维持着半年发布一次更新的节奏。但是,随着疫情在世界范围内的发展,Go语言的更新也将受到影响。下面,我们就从英语原文来理解一下所受影响的情况,顺便了解一下相关的科技英语词汇。 As we face this pandemic together and do our part to stay home and contain the spread, many of Google's various projects are being forced to change their timelines, with Chrome being the prime example.【译】当...阅读全文

jvm垃圾回收算法

前言 java相较于c、c++语言的优势之一是自带垃圾回收器,程序开发人员不用手动管理内存,内存的分配和释放完全由gc(Garbage Collector)来做,极大地提高了软件开发效率及程序健壮性(手动管理内存容易造成内存泄漏)。凡事皆有两面性,java gc在给我们带来内存管理便捷性的同时,也面临STW(Stop The World)影响程序吞吐的缺陷。作为java开发人员,只有深入理解jvm垃圾回收的机制,才能在程序性能出现瓶颈时,更好的对程序进行优化。笔者通过拜读《深入理解java虚拟机》,总结书中内容,给大家分享下java虚拟机常见的垃圾回收算法。 垃圾确定 在垃圾回收之前,jvm需要确定哪些对象已死,即需要当做垃圾被回收。垃圾确认的方法传统的有引用计数法:用一个引用计数器来标记对...阅读全文

博文 2019-01-26 22:34:42 luckiexie

Golang中生成随机字符串并复制到粘贴板

前段时间在生活中偶尔需要对某些文件进行重命名,而且是随机名字,刚 开始是手动重命名然后在键盘上胡乱打一些字母数字,时间长了发现也挺麻烦的,于是想到能不能用golang实现这个功能并且自动把生成的字符串 复制到粘贴板,然后生成exe文件,要用的是直接鼠标双击就行。说干就干。 网上搜了些相关资料,于是写了出来。 安装必要的库 go get github.com/atotto/clipboard 代码实现 package main import ( "fmt" "github.com/atotto/clipboard" "math/rand" "strings" "time" ) var a = [...]string{"a", "b", "c", "d", "e", "f", "g", "h",...阅读全文

博文 2019-12-21 06:32:58 梅云罗

ubuntu eclipse 编写简单go语言

1、下载配置Golang,配置相关环境 一、现在地址:http://www.golangtc.com/download 我选择的是下面这个(64位,linux版) 二、配置环境 解压后在.bashrc中配置环境变量 2、配置gocode 默认情况下go的解压包里面没有gocode,所以我们需要安装一个,通过命令: ? 1 go get -u github.com/nsf/gocode 就可以在go的目录里看到了: 3、eclipse集成goclipse插件 goclipse(https://github.com/GoClipse/goclipse )是eclipse的一个go语言插件,可以在eclipse里面在线安装也可以下载,解压,将features和plugins目录里面的文件复制到ec...阅读全文

博文 2015-06-17 23:01:36 Java__Coder

golang中的xg作用

前面的文章里大概说过一些如何阅读xg的源代码的东西,但是后来由于太懒了,总是不想写一些很系统的东西,所以感觉还是把一些值得说的大概写一点,做个备忘。 事实上xg的通用的内容都被放在了src/cmd/gc里,而整个编译阶段最重要的东西就是go.y这个文件,因为这个是bison的语法定义文件。事实上go在编译阶段也只是将所有的内容按语法分析的结果放入NodeList这个数据结构里,然后export写成一个*.6(比如amd64的架构),这个.6的文件大概是这样子的: amd64 exports automatically generated from test.go in package "main" $$ // exports package main func "".main () var ...阅读全文

博文 2015-06-17 20:18:51 HopingWhite

2014.12最新hosts文件亲测可用google服务

在Ubuntu下同过下面命令修改,把下方数据复制到hosts的底部 sudo gedit /etc/hosts hosts代码在下方 127.0.0.1 localhost ::1 localhost fe80::1%lo0 localhost 255.255.255.255 broadcasthost 17.151.36.30 gs.apple.com 198.252.106.236 serve.netsh.org #Microsoft OneDrive 134.170.108.154 onedrive.live.com 134.170.104.90 onedrive.live.com 134.170.107.154 onedrive.live.com 134.170.108.26 one...阅读全文

博文 2015-06-17 20:05:19 Moriarty_221

Golang 复制版 Copier

Copier 是 Golang 的复制版,它从一个结构复制到了另一个结构。它具有以下特点: * 如果名字匹配,就从一个场景复制到另一个场景 * 如果方法名和场景名匹配,就从方法复制到场景 * 如果场景名和方法名匹配,就从场景复制到方法 * 从片复制到片 * 从结构复制到片 示例代码:

import . "github.com/jinzhu/copier"
type User struct {
    Name string
    Role string
    Age  int32}
    func (user *User) DoubleAge...阅读全文

把别人的Tcl/Tk代码加入到Go语言里12 游戏5 画图案?

a 首先打开网页 http://wiki.tcl.tk/4206 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如...阅读全文

博文 2015-05-13 16:00:06 名字不能长

golang讲解(go语言)标准库分析之string开篇

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们继续讲golang标准库的string这个包,我选定这个是看了下别的包真的需要这个功能所以我们来这个包,string包实现了简单的函数方法来操作字符串。其中的type Reader很简单,因为会返回一个*Reader这就用到我们前边讲的io了,废话不多说进入正题 (1)func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true [php] import ( "fmt" "strings" ) func main() { fmt.Println(strings.Contains("widuu", "wi")) /...阅读全文

博文 2017-02-09 18:40:36 widuu

golang-raft算法理论与实践

前言 我计划写raft的一系列文章,包含从理论到代码实践,此文章依托于MIT的研究生课程。 背景 raft 是一种分布式的共识算法,其目的是要实现多个节点集群的容错性,一致性从而能够构建大规模的软件系统。 在raft之前,比较有名的是Paxos。但是paxos难于理解。 raft的诞生是为了让共识算法更容易理解,在工程上更容易实现。 和其他的共识算法不同的是,raft具有下面的特点: leader:raft中会有一个领导者具有超级权限,可以把自己的log 复制到其他节点中。 leader election: raft每隔一段随机的时间就会进行leader的选举 raft允许集群配置变化时正常运行。 Replicated state machine 状态机是分布式系统中的一个重要概念,任何一个...阅读全文

博文 2020-02-12 07:32:56 唯识相链2

把别人的Tcl/Tk代码加入到Go语言里9 游戏2 可旋转的3D多面体

a 首先打开网页 http://wiki.tcl.tk/14283 【3D polyhedra with simple tk canvas Updated 2014-10-24 21:38:58 by ZB 】 b 把网页里提到的tcl/tk代码复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里go run go代码文件,运行效果如...阅读全文

博文 2015-05-13 08:00:00 名字不能长