go语言的排序和搜索

晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题。排序 sort 是个基本的操作,当然搜索 search 也是。c 提供一个 qsort 和 bsearch,一个快排一个二分查找,不过是使用起来都不方便; c++ 中的 sort 貌似很不错,因为 c++ 支持泛型(或是说模板),所以很多东西使用起来很方便。go 是通过 sort 包提供排序和搜索,因为 go 暂时不支持泛型(将来也不好说支不支持),所以,go 的 sort 和 search 使用起来跟类型是有关的,或是需要像 c...阅读全文

开源中国博客 2015-07-27 11:34 nop4ss

golang中使用mongodb

mgo简介 mongodb官方没有关于go的mongodb的驱动,因此只能使用第三方驱动,mgo就是使用最多的一种。mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。 官网:http://labix.org/mgo 安装与使用 安装 go get gopkg.in/mgo.v2 go中使用 package models import ( "gopkg.in/mgo.v2" "log" ) type Person struct { ...阅读全文

博客园 2015-07-26 22:59 spnt

Golang中解析json,构造json

json解析是如今(网络)应用程序开发中最不可或缺的一环了。许多语言需要库支持才可以解析、构造json,但Golang凭借着原生库就可以很好地做到这一点。 json的基本表现形式有两个:struct与string。解析与构造就是要解决string2struct与struct2string。在Golang里,负责这两项功能的库位于"encoding/json"。库中函数使用说明可以前往“https://gowalker.org/encoding/json”查看。下面给出使用示例源码。 JSON构造...阅读全文

博客园 2015-07-26 21:13 Darksun

Go1.5 改进摘要

Go1.5 改进简介 1. 纯Go(+少量汇编)实现 runtime 和 编译器 2. 改进 垃圾回收器, 支持并发 (有个指标好像是 停顿在 10 毫秒以内). 3. GOMAXPROCS默认值改为 CPU 核数 4. internal限制规则推广到第三方包 (之前只有 std 包启用) 5. 增加 vendor 支持, 基本解决 第三方库的依赖问题和版本问题 6. 增加 trace 命令, 更友好的剖析程序运行状态 7. 增加 go doc 命令 语法变化 增加 map 字面量. 以前的代码...阅读全文

CSDN博客 2015-07-13 19:16 codemanship

Go语言4-数组、切片及map

1、数组 数组长度定义后不可修改,通过内置函数len()来获取数组元素个数 1)类型 //长度为32的byte数组,每个元素为一个字节 [32]byte //长度为2*N的复杂类型数组 [2*N] struct{x,y int32} //长度100的指针数组 [100]*float64 //二维数组,等同于[2]([3]int) [2][3]int //三维数组 [2][2][2]float64 2)定义 //定义一个长度为5的数组,默认会使用int类型的零值(0)进行初始化 arr := [5...阅读全文

CSDN博客 2015-06-09 22:21 zjl103

如何访问 Google

这个世界充满着奇葩,在特殊的地方和特殊的时间,流畅顺利的打开一个网站也变得如此艰难。列表中有些打不开可能是 DNS污染 的原因,尝试更改DNS地址。以下镜像站分原版和非原版,非原版界面有些改变,搜索结果依然是相同的。 非原版: Glgoo:http://www.glgoo.com/九尾搜索:http://www.jwss.com/谷粉搜搜:http://www.gfsswy.com/谷粉搜搜:http://gufensoso.com/谷粉恰搜:http://www.qiasou.com/蝴蝶:h...阅读全文

开源中国博客 2015-07-26 11:21 troy23

Go语言练习:网络编程实例——简易图片上传网站

1、代码结构 2、运行实例 1、代码结构 $ tree . ├── photoweb.go ├── public │ ├── css │ ├── images │ └── js ├── uploads └── views ├── list.html └── upload.html 1.1)photoweb.go 1 package main 2 3 import ( 4 "io" 5 "os" 6 "log" 7 "net/http" 8 "io/ioutil" 9 "html/template...阅读全文

博客园 2015-07-25 02:20 fengbohello

go语言使用protobuf

网上为什么充斥着大量几乎一模一样而且不正确的教程??? 妈的打开一个关于golang和protobuf的教程,无非都是扯他妈的protobuf多么多么牛逼,xml多么多么傻逼,然后就是怎么安装protobuf,然后又是屎一样的示例。 安装过程没一个对的,我搜了那么多博客,全都是一个德行,我先写一下ubuntu的安装步骤,同时适用于mac和其他linux,而且保证是对的。 真的无力吐槽,先说正事,一会接着吐。 一、首先去 https://github.com/google/protobuf 下载p...阅读全文

博客园 2015-07-24 16:29 wolfred7464

go 语言学习之:chan

chan 是什么 一个变量,但这个变量有点特殊:创建之后,如果不设置它的话,读它的地方会阻塞。 通过这样一种特性实现了 goroutine 的通信。 缓冲机制 c := make(chan int , 1024) 后面的 1024就是指的缓冲区的大小,写的时候,如果缓冲区不慢。则写入操作不会阻塞。 select 监控一系列的文件句柄,一但一个发生变化,就返回。 select{ case <-chan1: case chan2<-1: default: }阅读全文

开源中国博客 2015-07-24 17:42 wwq1001

golang channel缓冲区阻塞

常见双通道channel使用: c2 := make(chan int, 2) c2 <- 1 c2 <- 2 c2 <- 3 fmt.Println(<-c2) fmt.Println(<-c2) fmt.Println(<-c2) 由于channel大小只有2个,在c2<-3那里一定会阻塞,然后程序一直阻塞下去死掉 程序报错:fatal error: all goroutines are asleep - deadlock! 改进方法:1、增大channel的大小 2、同步执行改成异步执行 ...阅读全文

开源中国博客 2015-07-24 15:13 webyh

go语言使用redis —— redigo

redis的client有好多好多,go语言的client在redis官方有两个推荐,radix和redigo。选择哪一个好呢?确实很纠结,后来掷硬币决定选择redigo了。 redis、go、redigo的安装就不需要提了,不能强行增加篇幅。 redigo使用起来很人性化,api设计的符合直觉,我对redis了解较少,使用过程中基本没有遇到障碍。 redigo的使用入门可以去查godoc:http://godoc.org/github.com/garyburd/redigo/redis 接下来...阅读全文

博客园 2015-07-23 16:37 wolfred7464

怎么用notepad++配置go语言开发环境

怎么用notepad++配置go语言开发环境。原文 http://www.oschina.net/question/565065_57085 和 http://studygolang.com/articles/2371 一、准备工作: 1、安装go语言; 2、将go/bin目录加入环境变量; 3、安装notepad++; 二、配置notepad++支持go语言语法高亮 1、下载notepad++的go语言支持包(http://notepad-plus.sourceforge.net/commun...阅读全文

CSDN博客 2015-07-14 00:10 tjzzy

Go语言文档

Go语言文档 [Go语言中文小组] 翻译整理 2011-03-02 关于本文Go语言简介安装go环境 3.1. 简介3.2. 安装C语言工具3.3. 安装Mercurial3.4. 获取代码3.5. 安装Go3.6. 编写程序3.7. 进一步学习3.8. 更新go到新版本3.9. 社区资源3.10. 环境变量 Go语言入门 4.1. 简介4.2. Hello,世界4.3. 分号(Semicolons)4.4. 编译4.5. Echo4.6. 类型简介4.7. 申请内存4.8. 常量4.9. I/...阅读全文

CSDN博客 2015-06-06 11:15 dazheng

在Go语言里检测内存泄漏

转载于:在Go语言里检测内存泄漏 | DLCoder.com http://dlcoder.com/archives/5648 在影响软件系统稳定性的因素里,我们最担心的一个问题是内存泄漏,随着系统的运行,系统消耗的内存越来越多,直到最后整个操作系统越来越慢,甚至还会导致系统崩溃。在Go语言里,我们检测内存泄漏主要依靠的是go里面的pprof包,除此之外,我们还可以使用浏览器来查看系统的实时内存信息(包括CPU、goroutine等的信息)。主要是用net/http/pprof包在进程里建立一个...阅读全文

CSDN博客 2015-07-18 11:19 sryan

Golang-简洁的并发

多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。 并发模式之内核 这种并发模式的内核只需要 协程 和 通道 就够了。协程负责执行代码,通道负责在协程之间传递事件。 不久前,并发编程是个非常困难的事。...阅读全文

开源中国博客 2015-07-23 12:48 nop4ss