
go
a11101171
这个作者很懒,什么都没留下…
展开
-
<7> go time定时器
ticker := time.NewTicker(time.Second * 3) 生成一个ticker定时器,三秒后执行即ticker.C会输出一个IOimport ( "fmt" "strconv" "time")func main() { // 使用 select return 来关闭,定时器只会执行一次 go func() {原创 2015-11-20 16:14:10 · 675 阅读 · 0 评论 -
<14> go strings_func
go的strings包专门操作字符串import ( "fmt" s "strings")var p = fmt.Printlnfunc main() { p("Contains: ", s.Contains("test", "es")) p("Count: ", s.Count("test", "t")) p("HasPrefix: ", s.原创 2015-11-26 20:46:34 · 699 阅读 · 0 评论 -
<8> go channel 通信通道
go中最重要的一种通信通道就是channelpackage mainimport "fmt"// 此channel没有设置缓存,将被阻塞,所以都是执行defaultfunc main() { messages := make(chan string) signals := make(chan bool) select { case msg := <-messag原创 2015-11-23 23:15:43 · 1184 阅读 · 0 评论 -
<15> go string_formatting
字符串格式化输出package mainimport "fmt"import "os"type point struct { x, y int}func main() { // 创建一个point struct p := point{1, 2} // 输出struct的值 {1 2} fmt.Printf("%v\n", p) // 输出st原创 2015-11-27 10:59:28 · 1003 阅读 · 0 评论 -
<16> go regexp正则
regexp包是go中内置的专门处理正则的包package mainimport "bytes"import "fmt"import "regexp"func main() { // 正则,返回true 或者 false match, _ := regexp.MatchString("p([a-z]+)ch", "peach") // true fmt.Pri原创 2015-11-28 11:09:13 · 986 阅读 · 0 评论 -
<17> go json
go里的encoding/json 包专门处理jsonimport ( "encoding/json" "fmt" "os")type Response1 struct { Page int Fruits []string}type Response2 struct { Page int `json:"page"` Fr原创 2015-11-28 11:31:37 · 572 阅读 · 0 评论 -
beego 使用例子
Beego Go Program . It is easy to build API testing and SSH login into linux by terminal最近使用beego这个框架写了一个go的web应用,这个可以快速构建api测试和提供web方式的terminal远程连接。地址:https://github.com/11101171/violence原创 2016-01-18 11:58:54 · 3927 阅读 · 0 评论 -
<18> go time
import ( "fmt" "time")func main() { p := fmt.Println // 2015-11-30 19:18:48.264366857 +0800 CST now := time.Now() p(now) // 返回time.Time // 2009-11-17 20:34:58.651387237原创 2015-11-30 19:53:11 · 876 阅读 · 0 评论 -
<19> go random string
利用random给数据主键生成唯一ID// 生成: 时间戳 + 设置前缀 + 随即字符串const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"func RandomString(pixff string, strlen int) string {rand.Seed(time.Now()原创 2016-02-01 11:52:57 · 1101 阅读 · 0 评论 -
revel nohup 部署
#!/bin/bash#function that prints out usage syntaxsyntax () { echo " " echo "./app-xxx.sh [options]" echo " " echo " [options] is one of create | backup | rm | read " echo " sta原创 2016-03-23 10:09:02 · 1023 阅读 · 0 评论 -
<13> go collection-func
集合的操作:import ( "fmt" "strings")// 返回数组下标,找不到返回-1func Index(vs []string, t string) int { for i, v := range vs { if v == t { return i } } return -1}/原创 2015-11-26 20:31:04 · 813 阅读 · 0 评论 -
<12> go panic
import ( "fmt" "os")func main() { fmt.Println("Start Main func()") panic("a problem") _, err := os.Create("/sss/sss") if err != nil { panic(err) }}// 输出Start Main原创 2015-11-26 20:29:25 · 742 阅读 · 0 评论 -
<1> go 继承
1 方法的继承在go中没有继承的关键字,但是我们可以通过interface这个类型做出继承的效果,看如下代码,Car就继承了Start和Stop这两个方法import ( "fmt")type Engine interface { Start() Stop()}type Car struct { Engine}func (this *Car) Start() {原创 2015-11-16 16:17:58 · 940 阅读 · 0 评论 -
<9> go worker线程池
Worker Poolspackage mainimport "fmt"import "time"// 使用goroutine 开启大小为3的线程池// 其中1个channel为执行做通信,1个对结果进行保存// 创建的workerfunc worker(id int, jobs <-chan int, results chan<- int) { for j := range j原创 2015-11-24 16:03:28 · 1743 阅读 · 0 评论 -
<3> go 枚举
在go语言中,没有直接支持枚举的关键字,也就造成go没有直接枚举的功能。但是go提供另一种方法来实现枚举,那就是const+iota// 实现枚举例子type State int// iota 初始化后会自动递增const ( Running State = iota // value --> 0 Stopped // value --> 1 Re原创 2015-11-19 18:14:21 · 1732 阅读 · 0 评论 -
<2> go -反射-函数map化
代码编程中,用方法调用匹配名字的函数,非常有效利用go的反射机制可以实现import ( "errors" "fmt" "reflect")func foor() { fmt.Println("Start->foor()")}func say(number int) { fmt.Printf("This text is %d", number)}fun原创 2015-11-18 23:04:01 · 2020 阅读 · 0 评论 -
<5> go 上下文传递context
有go有channal,slick,map,interface,func等等,其中func可以当作参数传递的这个功能也是很多动态语言支持的。 现在看下怎么使用import ( "fmt")type Do struct { Name string}func (this Do) Lock() { fmt.Println(this.Name + " Lock ...")}原创 2015-11-19 21:17:42 · 2140 阅读 · 0 评论 -
Golang开发环境搭建-Vim篇
Mac OS X下的配置方法稍有不同,因为Mac下系统自带的Vim是7.3版本,YCM要求Vim 7.3.584+版本,因此我们需要安装MacVim以替代自带的Vim,目前MacVim最新版本是version 7.4.258,完全满足要求。在这里https://github.com/b4winckler/macvim/releases可以下载到最新的MacVim,下载后的MacVim可以通过如下步骤转载 2015-12-12 14:01:51 · 1096 阅读 · 1 评论 -
<6> go select 和 switch
select和switch语法都能相近,但是有重要不同的一点,switch可以做表达式的比较判断,而select只能是io操作的判断。相同点:都能用return跳出来。// switchi := 1switch{ case i==1: //doing case i==2: //doing default: // doing}//selectch := make(chan原创 2015-11-20 12:06:11 · 1681 阅读 · 0 评论 -
<4> go 工厂
直接上代码import ( "errors" "fmt" "strings")type Servers []Servertype Server struct { Name string}func ListServer() Servers { return []Server{ {Name: "app1"}, {Name: "原创 2015-11-19 19:56:57 · 723 阅读 · 0 评论 -
<11> go sort排序
go里有sort的排序的包,可以直接使用,也可以使用func来自定义 下面给例子//****************************************************///Copyright(c) 2015 Tencent, all rights reserved// File : sorting.go// Author : ningzhong原创 2015-11-26 20:08:23 · 1381 阅读 · 0 评论 -
<10> go test单元测试
之前看了go官方的github上关于golang的单元测试,现在总结一下关键的地方。单个测试文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码你必须import testing这个包所有的测试用例函数必须是Test开头 测试用例会按照源代码中写的顺序依次执行测试格式:func TestXxx(t *testing.T),Xxx部分可以为任意的字母数字的组合原创 2015-11-26 14:41:32 · 1499 阅读 · 0 评论