实例
import ("fmt""net/http""strings"
)func myHandler(w http.ResponseWriter, r *http.Request) {//解析参数,默认是不会解析的r.ParseForm()fmt.Fprintf(w, "%v\n", r.Form)fmt.Fprintf(w, "path:%s\n", r.URL.Path)fmt.Fprintf(w, "schema:%s\n", r.URL.Scheme)//get查询字符串fmt.Fprintf(w, "form:%s\n", r.Form)//控制台打印for k, v := range r.Form {fmt.Println("key: ", k)fmt.Println("value: ", strings.Join(v, ""...
下载地址:https://golang.google.cn/dl/ 配置 GOROOT是golang的安装目录GOPATH是以后存golang项目的目录原文:https://www.cnblogs.com/zyfeng/p/15117991.html
github.com/go-xorm/xorm xorm库http://www.xorm.io/docs/ 手册xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单SQL需求。在xorm里面,可以同时存在多个Orm引擎,一个Orm引擎称为Engine,一个Engine一般只对应一个数据库。Engine通过调用xorm.NewEngine生成,如:var engine *xorm.Engine在使用前,记...
本文转自Golove博客:http://www.cnblogs.com/golove/p/3276678.html io 包为I/O原语提供了基础的接口.它主要包装了这些原语的已有实现,如 os 包中的那些,抽象成函数性的共享公共接口,加上一些其它相关的原语。由于这些接口和原语以不同的实现包装了低级操作,因此除非另行通知,否则客户不应假定它们对于并行执行是安全的。在io包中最重要的是两个接口:Reader和Writer接口,首先来介绍这两个接口.type Reader interface {Rea...
在配置前需要下载用到的包:godocgodefgocodeoracle在下载包之前需要设置好环境变量:# Golang
export GOROOT=$HOME/go
export GOPATH=$HOME/development/go
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin 如果网络良好的话使用这种方法:godoc:go get golang.org/x/tools/cmd/godoc这样会将godoc二进制文件安装到$GOROOT/bin目录里。godef:go get github.com/rogpeppe/godef 这样会将godef二进制文件安装到$GOP...
导入包:标准包使用的是给定的短路径,如"fmt"、"net/http"自己的包,需要在工作目录(GOPATH)下指定一个目录,improt 导入包,实际上就是基于工作目录的文件夹目录导入包的多种方式:直接根据$GOPATH/src目录导入import "test/lib"(路径其实是$GOPATH/src/test/lib)别名导入:import alias_name "test/lib" ,这样使用的时候,可以直接使用别名使用点号导入:import . "test/lib",作用是使用的时候直接省略包名使用下划线导入:imp...
panic 是一个内置函数,当一个函数 F 调用 panic,F 的执行就会停止,F 中 deferred 函数调用会被执行,然后 F 返回控制到它的调用者。这个过程会沿着调用栈执行下去,直到当前 goroutine 中的所有函数返回,然后程序 crash。出现 panic 是因为:调用了 panic 函数
出现了运行时错误(例如,数组越界访问)
recover 是一个内置函数,用于恢复一个 panicking goroutine 的控制。需要注意的是,recover 只能使用在 deferred 函数中。...
0x0 前言最近这几天研究了一下ElasticSearch相关的技术栈。前面一篇转发了别人些的非常详细的ElasticSearch和Kibana搭建的过程。发现Elastic家族还有Metricbeat这个神器,今天我们把前面搭建的和这个工具一起利用起来。 0x1 需求需求是这样:我有很多个Golang写的应用程序,每程序连接一个Redis数据库,每个程序开在一台物理机上。我需要把每个golang应用每个Redis数据库和每个所在的物理机监控起来。 0x2 启动Metricbeat 1. 下...
Go supports time formatting and parsing via pattern-based layoutspackage mainimport ("fmt""time"
)func main() {p := fmt.Printlnt := time.Now()p(t.Format(time.RFC3339))t1, e := time.Parse(time.RFC3339, "2012-11-01T22:08:41+00:00")p(t1)p(e)p(t.Format("3:04PM"))p(t.Format("Mon Jan _2 15:04:05 2006"))p(t.Format("2006-01-02T15:04:05.999999-07:00"))form := "3 04 PM"t2, e := time.Parse(form, "8 41 PM")p(...
const (_ = iotaonetwothree
)const (TWO = 1 << (2*iota)FOUREIGHT
)func main() {fmt.Println("KB:",KB)fmt.Println("three:",three)
}1.iota而非itoa 2.iota可以变量自增原文:https://www.cnblogs.com/chunyou128/p/11524453.html
用golang进行http请求类型多了,总结备忘一下。 1.普通的post\get请求 var r http.Request r.ParseForm()r.Form.Add("uuid", orderUUID)bodystr := strings.TrimSpace(r.Form.Encode())request, err := http.NewRequest("GET", url, strings.NewReader(bodystr))if err != nil {//TODO: }request.Header.Set("Content-Type", "application/x-www-form-urlencoded")request.Header.Set("Connection", "Keep-Alive")var resp *h...
package mainimport ("fmt""crypto/md5""encoding/hex""sort""strings""net/url""bytes""net/http""io/ioutil"
)var urls = "http://www.sendcloud.net/smsapi/send"
var token = "xxxxxx"type postData struct {MsgType int `json:"msgType"`Phone string `json:"phone"`SmsUser string `json:"smsUser"`TemplateId int `json:"templateId"`Vars string `json:"vars"`
}func main() ...
在使用GO解决这道题之前,需要明白一件事,那就是在GO语言中int的取值范围,在GO语言中,int的取值范围是和机器有关的,在32位机里面,int类型占4个字节相当于Inte32,在64位机里面,int类型占8个字节,相当于int64,所以在本题中参数和返回值给的类型都是int是能够满足32位的要求的int32的取值范围是-2147483648~2147483647用GO解决这道题的另一个方便之处在于GO语言中取余以后不需要判断正负,例如: 3%4=3 -3%4=-3也就是说...
package mainimport ("fmt""reflect"
)func reflect_example(a interface{}) {t := reflect.TypeOf(a)fmt.Printf("type of a is:%v\n", t)k := t.Kind()switch k {case reflect.Int64:fmt.Printf("a is int64\n")case reflect.String:fmt.Printf("a is string\n")}
}func reflect_value(a interface{}) {v := reflect.ValueOf(a)// t := reflect.TypeOf(a)k := v.Kind()//fmt.Printf("a store value is :%d\n", v.Int())switch k {...
为什么golang做web编程比其他语言并发高:Go是通过一个函数ListenAndServe来处理这些事情的,这个底层其实这样处 理的:初始化一个server对象,然后调用了net.Listen("tcp", addr),也就是底层用TCP协议搭建了一个服 务,然后监控我们设置的端口。下面代码来自Go的http包的源码,通过下面的代码我们可以看到整个的http处理过程:func (srv *Server) Serve(l net.Listener) error {defer l.Close()var tempDelay time.Duration // how long...