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

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

golang 导入自定义结构体、实现接口

项目根目录为mygo,新建go文件,写一个入口函数 package main func main() { } 先新建一个新建model文件夹并新建.go文件(文件名随意无影响),自定义结构体 package people type Info struct { Age int } type People struct { Name string Info Info } func (p People) Getname() string { return p.Name } func (p People) Setname(name string) People { p.Name = name return p } 声明首字母大写可供外部调用 再新建imp文件夹,用来放接口文件,新建.go文件,写一个...阅读全文

博文 2018-07-16 12:34:49 droid_zf

开源消息系统 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强,千万级用户,年收入千万; 因业务发展迅猛...阅读全文

IPFS基本使用

在IPFS新增一个文件 新建test.txt文件 打开终端,切换到桌面,新建一个文件夹test,切换到test中,通过vi新建一个文件test.txt,文件里面输入Hello World保存并且退出。 $ cd Desktop/ $ mkdir test $ cd test/ $ vi test.txt $ cat test.txt Hello World 将test.txt添加到ipfs节点 使用ipfs add命令添加: $ cd Desktop/test $ ipfs add test.txt added QmUXTtySmd7LD4p6RG6rZW6RuUuPZXTtNMmRQ6DSQo3aMw test.txt $ ipfs cat QmUXTtySmd7LD4p6RG6rZW6R...阅读全文

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

[原文链接](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

Golang项目Bazel指北

该文档主要介绍 Bazel 构建基本 golang 项目的案例, 主要了解在golang项目中如何使用bazel. 概览 关键文件1. WORKSPACE 在项目根目录,主要用来设置加载bazel环境(包括rules等)以及其依赖。2. BUILD.bazel 存在于根目录以及源文件所在目录,用来标记源文件编译以及依赖情况,一般是自动生成。工具1. rules_go golang的官方rules,定义golang编译逻辑。2. gazelle 用于生成golang build文件的工具。项目构建1. 编辑WORKSPACE # 加载bazel标准库中的函数http_archive load("@bazel_tools//tools/build_defs/repo:http.bzl", "ht...阅读全文

博文 2018-12-09 22:34:43 Yodark

go的卸载与重装(linux系统)

## 前言 我在安装配置(非本人操作)了go的linux虚拟机上,尝试用 `$ go get github.com/astaxie/beego` 获取beego框架。但是,却出现了一个奇怪的错误: `go: cannot find main module; see 'go help modules'` ,怎么查询都没有找到问题原因。这对于一个刚接触go和linux的新手来说,是手足无措的。于是,心生一计,卸载重装。 ## 一、卸载 ### 1.删除GOROOT目录 用 `$ go env` 找到GOROOT目录,在我的linux上为 `srv/go` ,而常见的应该是 `usr/local/go` 。然后,~~使用`$ rm -rf`删除该目录。~~(用这个命令是...阅读全文

博文 2019-02-19 12:39:47 99MyCql

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

Golang交叉编译

Golang交叉编译 --------------------- 本文在Windows已正确安装Golang环境的情况下进行。Linux下类似操作即可。 要进行交叉编译先需要准备好编译相应平台及系统所需要的环境。 首先有两个用于指定叉编译目标平台的环境变量必要提前了解: GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm) GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows) 一、准备交叉编译的环境 1.通过控制台进入到该路径下的 D:\Go\src 目录中(假定Golang安装在 D:\Go 路径下)。在该目录中会有一个 make.bat(注:make.bash 可用于linux下) 的批出来文件。 2...阅读全文

golang开发环境搭建

最近由于工作需要,开始接触一门新的语言——golang,Golang是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言。对于熟悉Java的人,在语言习惯方面有部分不适应,个人感觉更像js与C的结合版,慢慢熟悉后会觉得是一门非常棒的语言,速度快,高性能。确实值得去学习了解。 由于公司主要开发是在linux系统下,熟悉的配置还是在linux下,不过也一并把windows的配置简单描述一下。 golang下载地址:www.golangtc.com/download 在这个下载地址中有个下载第三方包的连接,主要是用来下载一些开发需要的依赖包,由于天朝墙的关系,code.google.com上面的很多包没法下载,可以按照这个下载第三方包的界面操作进行下载,是很方便的。 一、wind...阅读全文

博文 2015-09-09 12:00:00 hellth

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

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

博文 2018-05-31 18:34:37 石匠

Go语言(工程和包)

在Go语言中,包是函数与数据的集合,用package定义一个包,包的名字不一定要跟文件名字一样,接下来,将学习如何使用Go语言的包。 首先,我们创建一个Stack包,然后用一个主程序来调用这个包里面的方法。这实际上涉及到Go语言中的工程的分包和编译。Go语言是这么来配置它的工程的,如下图 其中package是工程的根目录,我们需要事先设置环境变量GOPATH,如下 而bin目录和pkg目录是go编译自动生成的,而src是手动创建的。所以创建工程的步骤大致是 (1)进入到package目录,即工程根目录 (2)执行mkdir src,创建一个src源文件存放目录 (3)在源文件目录中创建一个stack包,即mkdir stack (4)再创建一个test包,用于测试stack的功能,此包中为主...阅读全文

博文 2015-04-04 01:00:01 ACHelloWorld

golang笔记:cookie

在同一个问题上栽了两次,以后碰到cookie出问题多半都是因为这个。 Request.Cookie(name)取Cookie的时候,返回值只有name和value cookie.go cookies = append(cookies, &Cookie{Name: name, Value: val}) 可以看到只返回了Name和Value两个值,大概是为了所谓性能吧。于是在拦截器里读取当前Cookie并重设时间的时候,Path和时间值都要重设一下。不然原来根目录下的Cookie还在,而新的Cookie就根据某些规则种到不知道哪里了,还有可能导致退出的时候删不干净。 所以用golang种cookie的时候,除了name和value, 所有其的值都要像新建cookie一样重设一遍重设一遍...阅读全文

博文 2015-10-10 04:00:00 liumuqiu

[以太坊] Mac install abigen 安装abigen

这篇文章本不该有,但是我安装abigen的经历实在是太艰辛了,还是记录下吧。 1. 正确姿势 先说正确姿势,希望你能顺利。 一般来说,安装abigen命令,只需要三步就可以搞定的,下载,编译,安装。 go get github.com/ethereum/go-ethereum cd $GOPATH/src/github.com/ethereum/go-ethereum/ make make devtools abigen --help 2. 坑一之科学上网 在执行make devtools时,需要下载相关依赖,有golang.org的,也有github的,可怜的我一会开一会关,仍然不行,原因是Makefile里是这么写的 Makefile (看到-u了吧?你一定看到了!) 我不想修改Make...阅读全文

博文 2018-10-23 20:35:01 ytxing

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=0const ( b = iota //b=0 c //c=1) 3、自定义类型 自增长常量经常包含一个自定义枚举类型,允许你依靠编译器完成自增设置。 type St...阅读全文

GO Modules 使用

旧项目迁移,打算使用GO Modules 作为依赖管理。go版本 1.12私人依赖包,如何处理1. 创建模块的目录 ,并伸出go.mod 文件 mkdir modules go mod init modules 2. 创建自己的package目录 如 base module |--- main.go |---go.mod |---base |---testBase.go 其中main.go 的内容 package main import "modules/base" func main(){ base.Test() } testBase.go 的文件内容 package base import "fmt" func Test(){ fmt.Println("Bast Test) } 可以看到...阅读全文

博文 2019-02-28 18:34:42 起名好难_b30f

Golang modules 初探

今天天色刚刚亮起,起床看到golang 1.11正式发版了,有着两个重要的特性:modules和WebAssembly。 本博文只要说的是modules,congJava转golang的同学肯定是对golang的包管理充满了无奈之情,我也曾在博客中介绍过glide,也介绍过dep,现在我们再一次升级介绍modules。 什么是modules 现在都在说modules,那么它是什么? 到文档看看 Modules, module versions, and more: A module is a collection of related Go packages. Modules are the unit of source code interchange and versioning. Th...阅读全文

博文 2018-09-01 14:23:12 梦朝思夕

使用SWIG桥接Golang和Windows DLL

最近看了下Go语言,利用Dynamsoft Barcode SDK做了一个简单的Golang条形码扫描。这里分享下如何使用SWIG来快速封装底层C/C++接口。 参考原文:How to Use SWIG to Link Windows DLL with Golang 作者:Xiao Ling 翻译:yushulx 下载安装 mingw-w64 SWIG Go Dynamsoft Barcode Reader 如何使用SWIG实现Cgo封装 运行cmd.exe,设置GOPATH: set GOPATH=f:\go-project set DBR= 创建一个package: mkdir %GOPATH%\src\github...阅读全文

博文 2016-01-16 13:00:02 yushulx

golang实现单链表

package main import ( "sync" "fmt" ) func main() { node := Instance() node.Name = "张三" node1 := &Node{Name: "李四"} node2 := &Node{Name: "赵武"} node3 := &Node{Name: "李刘"} InsertNode(node, node1) InsertNode(node, node2) InsertNode(node, node3) ListNode(node) } type Node struct { Name string NodePtr *Node } var node *Node var once sync.Once func Instanc...阅读全文

博文 2019-07-11 11:32:42 清晨的麦田

golang 安装自己的package

go 程序的入口函数是main package下面的main函数。当他需要调用其他package时,就会去GOROOT下面找对应的package。如果希望程序能找到我们自己开发的package 就需要将它也放到goroot下面,具体步骤如下: 首先在 go 的安装根目录下面创建对应的package路径 将对应的go文件copy到第一步所建立的目录下面 执行go install packagename $ mkdir ~/go/src/aPackage $ cp aPackage.go ~/go/src/aPackage/ $ go install aPackag...阅读全文

博文 2018-07-03 19:34:43 币来币往

快递鸟单号查询自动识别接口,java对接调用示例

应用场景(1)PC端、移动端应用或网站应用集成运单物流信息查询功能时,只需要录入单号即可完成查询,无需用户输入快递公司。(2)电商网站要在快递鸟查询或者订阅运单时,可通过单号识别先行判断物流公司后,再订阅到快递鸟。API参数一、接口描述/说明(1)该接口仅对运单号做出识别,识别可能属于的一家或多家快递公司。(2)接口并不返回物流轨迹,用户可结合即时查询接口和订阅查询接口完成轨迹查询、订阅的动作。(3)接口识别会返回一家或者多家快递公司,返回的数据根据快递鸟大数据分析结果排序(4)若识别失败,快递鸟返回的匹配结果为空。(5)接口支持的消息接收方式为HTTP POST(6)请求地址:快递鸟请求系统级参数说明:​备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一...阅读全文

evans 测试grpc请求

evans 测试grpc 安装 evans地址 $ brew tap ktr0731/evans $ brew install evans 使用: 进入到工程目录 proto的schema根目录 /Users/chelsea/go/src/golang.******.com/xxx/protubuf-schema evans --port="项目端口号" proto/finance/service/xxx/xxxx.go package package lego service service lego call call 方法名称 eg:call PushInfo 输入相应参数 如果是repeated数组格式,可以ctrl+d 跳...阅读全文

博文 2018-10-08 19:34:42 super大橙子

【面试题】从链表尾部算起,删除第n个节点

给定一个链表,从链表尾部算起,删除第n个节点,并返回链表头节点。 例如: > 给定列表:1->2->3->4->5,和 n = 2。 > 从尾部算起,删除第2个节点后,链表变为:1->2->3->5。 说明: 1. 给出的 n 总是有效的,比如不会出现负数。 2. 尽可能使用 O(n) 算法实现。 Go 示例定义: ```go /** * 定义一个单链表: * type ListNode struct { * Val int * Next *ListNode * } */ func removeNthFromEnd(head *ListNode, n int) *ListNode { } ...阅读全文

用golang实现基于DFA算法编写的敏感词汇检测插件

SensitiveWordsGetgithub地址: https://github.com/TomatoMr/SensitiveWords.git或者go get github.com/TomatoMr/SensitiveWordsIntroductionSensitiveWords是基于DFA算法编写的敏感词汇检测插件,可独立部署,也可以集成到项目中.Usage独立部署1. 复制配置文件cd configcp config.toml.example config.toml2. 构建二进制包go build3. 使用方法-restart:restart your http server, just like this: -restart or -restart=true|false.-sta...阅读全文

博文 2018-06-25 21:34:49 MRTOMATO_7084

比特币挖矿机开发(三)【go语言学习】

这里讲一下project A的开始代码。同时测试代码也会给你的操作评分评等级。还有文件里的两个简单输出,服务器和客户端(分别在srunner 和 crunner里)可以帮你测试自己的代码是否按照要求运行。注意,上面的这些代码和指令都是假设你把go语言的路径设定在根目录“p1”下的。 如果你有任何建立,安装和测试文件的问题,http://golang.org/doc/code.html可以去这里看看“ How to Write Go Code”。这是一个学习go工作区运行和组织语言的一个好资源。还有,这个关于go语言的命令学习资源也很有用。“http://golang.org/cmd/go/” 现在我们开始学习怎么写go语言: 直接讲文字太虚,我先贴一段go语言的helloworld pack...阅读全文

博文 2014-10-07 20:00:00 modiziri

HTTP 抓包工具 netgraph

netgraph 是一个 Go 语言编写的跨平台的 B/S 架构的 HTTP 抓包工具,方便在 Linux 服务器上直接查看 HTTP 包。 [![截图](https://raw.githubusercontent.com/ga0/netgraph/master/screenshot.png)](https://raw.githubusercontent.com/ga0/netgraph/master/screenshot.png) 请确保你的浏览器支持 websocket。 ### 编译,安装,运行

  1. go get github.com/ga0/netgra...阅读全文

开源项目 2015-11-11 16:00:00 ga0

云主机与虚拟主机的区别是什么

普通虚拟主机:虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器,每个空间都给予相应的FTP权限和Web访问权限,以用于网站发布。 云虚拟主机:是普通虚拟主机的升级版。在云服务器基础上,使用云计算技术,更稳定、安全,可用性更强的虚拟主机。 虚拟主机的特点 1、 价格便宜。虚拟主机是标准的资源共享,性能虽然比不上VPS和服务器,但胜在价格,适合前期建设的网站。 2、 操作简便。虚拟主机的控制面板上有明确的在线解压、绑定域名、301重定向等设置,比较适合新手操作。 3、升级方便。如果在耐思尼克购买虚拟主机,主机升级只要用户在线提交申请,不用对网站进行更改,网站依然能正常运行,不够空间也不用担心。 云虚拟主机的特点 1、 通过...阅读全文

golang生成目录嵌套json使用jstree显示

目的:在浏览器上浏览电脑指定目录。 技术:golang,jstree 1. golang生成jstree识别的json 1.1 使用”io/ioutil”读取指定目录 fileinfos, err := ioutil.ReadDir(dirpath) if err != nil { log.Println("ReadDir error!" + dirpath) } 1.2 使用”encoding/json”生成json数据 type treestate struct { Opened bool `json:"opened"` Disabled bool `json:"disabled"` Selected bool `json:"selected"` } type filetree stru...阅读全文

博文 2016-02-10 01:00:09 qdudz

golang 实现单链表

package main //链表实现 import ( "fmt" "os" ) //定义错误常量 const ( ERROR = -1000000001 ) //定义元素类型 type Element int64 //定义节点 type LinkNode struct { Data Element //数据域 Nest *LinkNode //指针域,指向下一个节点 } //函数接口 type LinkNoder interface { Add(head *LinkNode, new *LinkNode) //后面添加 Delete(head *LinkNode, index int) //删除指定index位置元素 Insert(head *LinkNode, index int, d...阅读全文

博文 2017-02-10 10:29:25 赵雍

go源代码根目录结构

go源代码根目录结构 |– AUTHORS — 文件,官方 Go语言作者列表 |– CONTRIBUTORS — 文件,第三方贡献者列表 |– LICENSE — 文件,Go语言发布授权协议 |– PATENTS — 文件,专利 |– README — 文件,README文件,大家懂的。提一下,经常有人说:Go官网打不开啊,怎么办?其实,在README中说到了这个。该文件还提到,如果通过二进制安装,需要设置GOROOT环境变量;如果你将Go放在了/usr/local/go中,则可以不设置该环境变量(Windows下是C:\go)。当然,建议不管什么时候都设置GOROOT。另外,确保$GOROOT/bin在PATH目录中。 |– VERSION — 文件,当前Go版本 |– api — 目录,...阅读全文

博文 2016-04-17 09:00:00 qq_15437667

GB(一)

gb go语言基于项目的编译工具 1. 安装 1.1 约束 gb 依赖Go1.4以上版本 1.2 安装 通过以下命令安装 go get github.com/constabulary/gb... 1.3 升级 gb 依然处于开发状态,通过以下命令升级到最新版本 go get -u github.com/constabulary/gb/... 1.4 多版本go的情况 对每一个go版本都安装gb 1.5 注意 安装完毕后的gb命令和oh-my-zsh配置的 git branch 简写命令有冲突,采用 ~/.zshrc中 unalias gb 来屏蔽 2. 项目 gb基于项目。一个gb工程为一个编译单元,每个gb工程目录含有一个src/子目录,没有配置文件的设置,以下文档我们统称工程的目录为$P...阅读全文

博文 2017-02-09 06:00:24 0zaki1sc

数据结构——Golang实现单链表

载请注明出处:数据结构——Golang实现单链表 Golang 1. 单链表 1.1. 定义 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点; 列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向nuLL的指针。 1.2. 优点 单个结点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小 结点的删除非常方便,不需要像线性结构那样移动剩下的数据 结点的访问方便,可以通过循环或者递归的方法访问到任意数据,但是平均的访问效率低于线性表。 2. Golang 实现 2.1. 相关结...阅读全文

博文 2019-01-19 18:34:44 ChainZhang

送你一份Redis书单,以后使用缓存的问题不用再问我啦!

经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java工程师的入门成本变得越来越低。 但于此同时,互联网公司对于Java的应用场景也在不断地升级换代,从单机部署再到分布式,从SOA再到微服务,Java后端技术栈变得更加庞大,对于工程师的要求也越来越高,特别是对于大公司来说更是如此,Java Web工程师已经不复存在,而取而代之的是Java后端工程师,也就是说,我们这些Java程序员不仅要写好业务代码,还要更多地掌握后端技术,除了数据库之外,像是缓存、消息队列、定时任务、微服务等技术也都是我们需要掌握的内容。 今天...阅读全文

博文 2020-05-08 23:32:48 程序员黄小斜

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 ...阅读全文

博文 2019-04-14 14:34:38 jouyouyun

go环境配置

第一步:下载go1.4.1.windows-amd64.msi默认安装好,添加bin路径到classpath 第二步:新建文本保存以下代码,放到C盘根目录,命名为test.go package main import "fmt" func main() { fmt.Println("Hello, World!") } 第三步:测试配置是否成功. Hello,World!配置成功...阅读全文

博文 2015-04-22 08:00:00 Junmay

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...阅读全文