-
go to to, day 1, warmup
所属栏目:[大数据] 日期:2020-12-16 热度:140
0. why go? find a doc talking about go by qiniu,http://open.qiniudn.com/thinking-in-go.mp4 not quite understand about the feature and essence of this language. what shock me is the passion and belief of the author. 1. environment startup h[详细]
-
golang -- ToString
所属栏目:[大数据] 日期:2020-12-16 热度:124
字符串拼接 package strimport ( "strconv")func ToString(args ...interface{}) string { result := "" for _,arg := range args { switch val := arg.(type) { case int: result += strconv.Itoa(val) case string: result += val } } return result} 使用[详细]
-
golang交叉编译工具,gox使用入门
所属栏目:[大数据] 日期:2020-12-16 热度:174
gox入门教程 先说下交叉编译是什么? 交叉编译也就是你可以在linux上编译出可以在windows上运行的程序,在32位系统编译出64位系统运行的程序。 gox就是方便你使用golang的交叉编译的工具。 安装gox 首先你的机器上需要装有golang。配置好了GOROOT,GOPATH这两[详细]
-
golang -- mysql & redis
所属栏目:[大数据] 日期:2020-12-16 热度:80
golang mysql 驱动安装 go get github.com/go-sql-driver/mysql go install github.com/go-sql-driver/mysql 以下是select的例子 package mainimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")func main() { initMySQL("root:112358@tcp([详细]
-
golang -- rpc
所属栏目:[大数据] 日期:2020-12-16 热度:112
内置的gob rpcserver packagemainimport("errors""fmt""net""net/rpc""os")typeArgsstruct{A,Bint}typeQuotientstruct{Quo,Remint}typeArithintfunc(t*Arith)Multiply(args*Args,reply*int)error{*reply=args.A*args.Breturnnil}func(t*Arith)Divide(args*Ar[详细]
-
golang -- TCP服务器(2)
所属栏目:[大数据] 日期:2020-12-16 热度:163
tcp服务器 包括日志,定时处理,广播,超时 map写添加了锁(读不用锁) 添加了解码器 删除了addr-buf映射,添加删除锁 mark:今天听大神所要处理系统中断EINTR,以后做简单处理EINTR--retry mark:用struct封装addr, net . Listener,exit(是否断开)等信息..最重要的是[详细]
-
golang在线编译+下载服务 建站之路
所属栏目:[大数据] 日期:2020-12-16 热度:53
网站建立起源 http://build.golangtc.com 一开始我是想找一个网站,只要告诉它我的github地址,它就能把代码编译好,然后把代码给打包,给我一个下载地址。这样分享给朋友也很方便。 先是问了问谢大建的GoWeb交流群,有没有网站提供这样的功能,结果是没有。[详细]
-
golang的vim工作环境配置
所属栏目:[大数据] 日期:2020-12-16 热度:67
2015-08-06更新 简易配置 " Remember last positionif has("autocmd")au BufReadPost * if line("'"") 1 line("'"") = line("$") | exe "normal! g`"" | endifendiffiletype onsyntax onset showcmdset ruler" enable backspaceset backspace=indent,eol,[详细]
-
golang test测试实例
所属栏目:[大数据] 日期:2020-12-16 热度:83
本文的目的是对mymysql进行单元测试和性能测试 准备工作: 1 go get github.com/ziutek/mymysql/thrsafe 2 在mysql建表和初始化数据(db是test) 1 2 3 4 5 6 7 8 9 10 11 12 drop table if exists admin; CREATE TABLE `admin` ( `adminid` INT(10) UNSIGNE[详细]
-
利用golang的反射包,实现根据函数名自动调用函数。
所属栏目:[大数据] 日期:2020-12-16 热度:199
package mainimport "fmt"import "reflect"import "encoding/xml"type st struct{}func (this *st)Echo(){ fmt.Println("echo()")}func (this *st)Echo2(){ fmt.Println("echo--------------------()")}var xmlstr string=`rootfuncEcho/funcfuncEcho2/func/[详细]
-
golang -- 字符串操作
所属栏目:[大数据] 日期:2020-12-16 热度:58
相关包有strings,strconv 判断是否以某字符串打头/结尾 strings.HasPrefix(s string,prefix string) bool= 对应python的str.startswith strings.HasSuffix(s string,suffix string) bool = 对应python的str.endswith 字符串分割 strings.Split(s string,sep[详细]
-
Martini 的工作方式
所属栏目:[大数据] 日期:2020-12-16 热度:71
后续参见Martini 中的 Handler 匿名字段 因为golang中没有继承,golang中用的方法是匿名字段,很多golang开发者称之为复合,可是我没有发现官方文档中对此进行正规命名,用继承这个词肯定不合适,容易对初学者造成理解上的错误,复合这个词很多初学者不一定知道具[详细]
-
Golang 接收器是指针还是至类型的区别
所属栏目:[大数据] 日期:2020-12-16 热度:91
Go语言可以根据下面的函数: func(a Integer) Less(b Integer) bool 自动生成一个新的Less()方法: func(a *Integer) Less(b Integer) bool{ return(*a).Less(b) } 这样,类型*Integer就既存在Less()方法,也存在Add()方法,满足LessAdder接口。而 从另一方面[详细]
-
golang 接口之间赋值并不要求完全相等,
所属栏目:[大数据] 日期:2020-12-16 热度:98
接口赋值并不要求两个接口必须等价。如果接口A的方法列表是接口B的方法列表的子集, 那么接口B可以赋值给接口A。[详细]
-
go 服务器出现too many open files的错误
所属栏目:[大数据] 日期:2020-12-16 热度:181
最近两天服务器总是会出现too many open files的错误。真的很是头疼。在本地开发环境中,也用了压力测试,发现问题不存在。但是为什么服务器会出现这种错误,有些闹不明白。本来想用ulimit更改一下打开文件的描述符。但这样子觉得并不解决问题。好吧,那就查[详细]
-
golang: 利用unsafe操作未导出变量
所属栏目:[大数据] 日期:2020-12-16 热度:105
看了 @喻恒春 大神的利用unsafe.Pointer来突破私有成员,觉得例子举得不太好。而且不应该简单的放个demo,至少要讲一下其中的原理,让看的童鞋明白所以然。see:http://my.oschina.net/achun/blog/122540 unsafe.Pointer其实就是类似C的void *,在golang中是[详细]
-
一个golang简介分享
所属栏目:[大数据] 日期:2020-12-16 热度:78
同事做的分享,感觉golang做服务器高并发开发(带用户态go routine,应该是连接池一类的东西),应该挺合适的,函数式编程,编译什么又像java. http://slid.es/zhymin77/deck[详细]
-
使用fswatch工具进行golang的热编译
所属栏目:[大数据] 日期:2020-12-16 热度:94
这个是做什么用的? fswatch是一个工具,通过检测文件的变化,并触发指定的命令 为什么需要fswatch 写完代码最重要的事情之一,就是检测一下写好的代码是不是能够工作. 要早提前做的话,收效越好,发现的问题越多. 但是如果每次都需要make test,每次都去编译或者测[详细]
-
Golang 模拟java超类型(abstract class)的实现
所属栏目:[大数据] 日期:2020-12-16 热度:119
golang中无继承概念,但利用golang 匿名组合 即可实现面向对象程序设计中继承的效果。在面向对象程序设计中,一般常见的两种超类型:接口,抽象类。在golang中,则更精简为只包含接口。在设计模式中,有要面向接口(超类型)编程这一重要的设计原则。在某些场[详细]
-
Go编程笔记(32)
所属栏目:[大数据] 日期:2020-12-16 热度:57
packagemainimport("fmt")typeUserstruct{IdintNamestring}typeManagerstruct{UserGroupstring}func(u*User)Test(){fmt.Println("UserTest:",u.Id,u.Name)}func(uUser)ToString()string{returnfmt.Sprintf("UserToString:[%d]%s",u.Name)}func(mManager)Test[详细]
-
golang 强制类型转换
所属栏目:[大数据] 日期:2020-12-16 热度:71
Go语言是个强类型语言。也就是说Go对类型要求严格,不同类型不能进行赋值操作。 指针也是具有明确类型的对象,进行严格类型检查。下面的代码会产生编译错误 package main import ( "fmt") func main() { u := uint32(32) i := int32(1) fmt.Println(u,i) //[详细]
-
关于Go,十件你可能不知道的事
所属栏目:[大数据] 日期:2020-12-16 热度:128
1. 匿名结构体 全局组合 1 2 3 4 5 var config struct { //定义一个用于全局配置结构体 APIKey string OAuthConfig oauth . Config } config . APIKey = "BADC0C0A" 数据模板 5 6 7 8 data := //匿名结构体的定义 Title Users []* User }{ //同时初始化 titl[详细]
-
Go的List操作上的一个小“坑”
所属栏目:[大数据] 日期:2020-12-16 热度:184
一直想不清楚一个问题,简单设计的东西到底是“坑多”还是“坑少”呢? 复杂的设计,考虑的太全面,使用起来更麻烦,使用者容易陷入乱,落入自身的陷阱;而简单的设计呢,在许多方面上又顾及不周,如果使用者对其“设计”没仔细研究,或者其实现本身又是一个[详细]
-
Golang linux下安装与配置
所属栏目:[大数据] 日期:2020-12-16 热度:190
一下载安装包 到 https://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive下载合适的版本,我选择的是:go1.2.linux-386.tar.gz 然后解压 : tar -xzvf go1.2.linux-386.tar.gz 二 配置e $ mv go /usr/local[详细]
-
Go中error类型的nil值和nil
所属栏目:[大数据] 日期:2020-12-16 热度:177
先看C语言中的类似问题:空字符串。 1 const char * empty_str0 = "" ; 2 * empty_str1 = " empty" ; 3 * empty_str2 = NULL; 以上3个字符串并不相等,但是从某种角度看,它们都是对应空的字符串。 empty_str0 指向一个空的字符串,但是empty_str0本身的值[详细]
