-
Golang中的切片和数组小记
所属栏目:[大数据] 日期:2020-12-16 热度:139
golang中的数组大概相当与C/C++中的数组,固定大小,不能够动态扩展大小,而切片大概相当与C++中的Vector,可以动态扩展大小,当大小超过容量时,重新分配一块内存,然后将数据复制到新的内存区域。 下面看一个在已有数组的基础上定义切片的例子: package m[详细]
-
golang 知识点
所属栏目:[大数据] 日期:2020-12-16 热度:157
1.//.(type),比如 username.(string) :类型断言,是interface{}转string 2..//判断网页中checkbox是否被选中 :为checkbox添加value属性,后台判断r.FormValue(checkbox的name属性) != "",表示被选中 3.//直接输出HTML string类型go的template处理时会自动做esc[详细]
-
golang 一个简单抓取网页的样例
所属栏目:[大数据] 日期:2020-12-16 热度:118
golang 还是比较亲民地,不像erlang那样不合群 ^_^ 不过如果写socket server ,erlang还是不二的选择。 在 osgi,node.js 和golang之间反复进行比较,最后还是决定将自己的项目慢慢转移到golang上。 预祝golang好运! package mainimport ("fmt""io/ioutil""[详细]
-
笔记 - 在合适之处关闭channel
所属栏目:[大数据] 日期:2020-12-16 热度:52
/*摘自: https://code.google.com/p/go/source/browse/2013/advconc/buffer/buffer.go?repo=talks*/package mainimport ("fmt")func main() {in,out := make(chan int),make(chan int)go buffer(in,out)for i := 0; i 10; i++ {in - i}close(in) // in == ni[详细]
-
统计代码行数工具 用golang实现
所属栏目:[大数据] 日期:2020-12-16 热度:194
首先:修改conf文件,配置要查找什么后缀的文件代码行数 使用方法:countcodeliine filename or nothing(计算可执行程序所在目录) 实现功能: 1,统计代码行数 2,可以根据配置文件(conf)来进行设置要对什么类型的代码进行统计 3,统计每个类型文件行数,和[详细]
-
golang实现直接插入排序算法
所属栏目:[大数据] 日期:2020-12-16 热度:65
直接插入排序 算法golang实现版本: 插入算法概要: 建立一个空的链表,首先在要排序的数组中随便拿出来一个数据,放在新建链表的开头,然后不停的从原数组中 获取数据,并和链表中的数据进行比较,大就放在链表的右端,小就放在链表的左端,一直循环直到结[详细]
-
Go程序如何来做热升级
所属栏目:[大数据] 日期:2020-12-16 热度:155
热升级是什么? 热升级是什么呢?了解nginx的同学都知道,nginx是支持热升级的,可以用老进程服务先前链接的链接,使用新进程服务新的链接,即在不停止服务的情况下完成系统的升级与运行参数修改。那么热升级和热编译是不同的概念,热编译是通过监控文件的变[详细]
-
golang的标准输入输出
所属栏目:[大数据] 日期:2020-12-16 热度:75
golang中的标准输出很简单: package mainimport ("fmt")func main() {fmt.Println("Hello world");} 标准输入的,自己试了好多次都不行: package mainimport ("fmt")func main() {var str stringfmt.Scanln(str)fmt.Printf("INPUT :%sn",str);} 结果发现[详细]
-
golang 面向对象
所属栏目:[大数据] 日期:2020-12-16 热度:125
method的语法如下: func (r ReceiverType) funcName(parameters) (results) 下面我们用最开始的例子用method来实现: package mainimport ( "fmt" "math")type Rectangle struct { width,height float64}type Circle struct { radius float64}func (r Recta[详细]
-
golang 函数
所属栏目:[大数据] 日期:2020-12-16 热度:116
函数作为值、类型 在Go中函数也是一种变量,我们可以通过 type 来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型 type typeName func(input1 inputType1,input2 inputType2 [,...]) (result1 resultType1 [,...]) 函数作为类型到底有什么[详细]
-
golang实现Fibonacii的几种算法
所属栏目:[大数据] 日期:2020-12-16 热度:135
package fib/**Fibonacii的几种算法实现*/// 直接循环计算func Fib(n int) int { f := [3]int{0,1,1} if n 0 { return -1 } if n 3 { return f[n] } for i := 3; i = n; i++ { f[0],f[1] = f[1],f[2] f[2] = f[0] + f[1] } return f[2]}// 略微修改,没有任[详细]
-
【转】GO Check if file exists
所属栏目:[大数据] 日期:2020-12-16 热度:50
finfo,err := os.Stat("filename.txt")if err != nil { // no such file or dir return}if finfo.IsDir() { // it's a file} else { // it's a directory}[详细]
-
golang 正则表达式
所属栏目:[大数据] 日期:2020-12-16 热度:118
正则分组替换,用$1,$2代替匹配到的字符串 func main() {re,_ := regexp.Compile(`a=(d+),b=(d+)`)c := re.ReplaceAllString("test regexp a=1234,b=5678. test regexp replace a=8765,b=3210 ","c=$2,d=$1")fmt.Println(c)} 输出: test regexp c=5678,d=[详细]
-
golang 变量生成周期
所属栏目:[大数据] 日期:2020-12-16 热度:181
func test() *int { a := 1 //会分配在堆上 b := 2 //会分配在栈上 println(a,b) return a}[详细]
-
着手写了一个基于golang 的 Web框架
所属栏目:[大数据] 日期:2020-12-16 热度:88
对golang十分感兴趣,花时间写了一个web 框架。 已经上传到了github:https://github.com/jiorry 分别实现了:http、log、db几个模块 简单的测试了一下,go框架开发的应用,负载能力是我原有系统的10倍以上。 下一步打算用这个框架慢慢替代原有产品。[详细]
-
DLang vs GoLang
所属栏目:[大数据] 日期:2020-12-16 热度:51
这次我打算好好写,因为最近 有点闲 . 首先介绍两种语言: DLang 如果你不介意阅读英文,那么DLang的官网有一份非常好的介绍,简单概括下就是 C太古老了,缺乏很多新的特性. C/C++太复杂了,但是语言标准就有数百页之多. C++中有很多常用的,好的特性是通过标准库实[详细]
-
golang monogdb
所属栏目:[大数据] 日期:2020-12-16 热度:54
package main import ( "fmt" "labix.org/v2/mgo" "labix.org/v2/mgo/bson" ) type Depta struct { Id string `bson:"_id"` Count int Ename string Sal int Mgrsal int Subsal int Davgsal int Dsumsal int Dcount int } func main() { session,err := mgo.D[详细]
-
使用Defer的几个场景
所属栏目:[大数据] 日期:2020-12-16 热度:71
Go 语言中的 defer 语句是 UNIX 之父 Ken Thompson 大神发明的,是完全正交的设计. 也正因为 Go 语言遵循的是正交的设计,所以才有了: "少是指数级的多/Less is exponentially more" 的说法. 因为是正交的设计,最终得到的组合形式是指数级的组合形式. 相反,C++[详细]
-
Go语言实现AndroidFramebuffer屏幕截图功能
所属栏目:[大数据] 日期:2020-12-16 热度:162
package main/***********作者:红猎人***********/import ( "os" "syscall" "fmt" "unsafe" /* "image/png" "bytes" */)var ( FBIOGET_VSCREENINFO = 0x4600)type fbBitfield struct { offset uint32 /* beginning of bitfield */ length uint32 /* length[详细]
-
Go语言变态用法
所属栏目:[大数据] 日期:2020-12-16 热度:176
今天为了提交notepad++高亮的BUG,写了一个变态代码. BUG地址: https://code.google.com/p/go/issues/detail?id=5798 下面是稍微调整后的代码(http://play.golang.org/p/RYq82b7BN2): package mainimport "fmt"type int bytefunc (p int) Foo() {fmt.Printf("[详细]
-
禁止 main 函数退出的方法
所属栏目:[大数据] 日期:2020-12-16 热度:157
func main() {defer func() { for {} }()}func main() {defer func() { select {} }()}func main() {defer func() { -make(chan bool) }()}[详细]
-
golang实现异步并发sokect
所属栏目:[大数据] 日期:2020-12-16 热度:89
搜索golang + epoll的例子,得到下面这段代码,感觉golang的编程思维真正做到了并行编程: package mainimport ("fmt""net""os""time")const (MAX_CONN_NUM = 5)//echo server Goroutinefunc EchoFunc(conn net.Conn) {defer conn.Close()buf := make([]byte,[详细]
-
golang读取json格式的天气预报
所属栏目:[大数据] 日期:2020-12-16 热度:184
使用天气预报的接口: http://weather.china.xappengine.com/api?city=南宁 (找了好久才找到一个支持拼音的,不过好像小地方是没数据的) 访问得到json格式压缩的数据,格式化后 { "pub": "2013-06-29 22:59","name": "南宁","wind": { "chill": 81,"direct[详细]
-
golang 反射
所属栏目:[大数据] 日期:2020-12-16 热度:80
package mainimport ("fmt""reflect")type Person struct{}func (p *Person) Run() {fmt.Println("person running")}func doit(object interface{},method interface{}) {v := reflect.ValueOf(object)f := reflect.ValueOf(method)f.Call([]reflect.Value{v[详细]
-
golang内置类型和函数
所属栏目:[大数据] 日期:2020-12-16 热度:143
/*内置类型 值类型: bool int(32 or 64),int8,int16,int32,int64 uint(32 or 64),uint8(byte),uint16,uint32,uint64 float32,float64 string complex64,complex128 array --固定长度的数组 引用类型:(指针类型) slice --序列数组(最常用) map --映射 chan[详细]
