配置相关依赖包:
[codesyntax lang="bash"]
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git
git clone https://github.com/golang/crypto.git
go get github....
[codesyntax lang="c"]
package main
import (
"fmt"
"github.com/astaxie/beego/httplib"
"net/http"
"net/url"
"time"
)
func main() {
content := "提交内容"
req := httplib.Post("https://www.baidu.com")...
router.go 添加内容:
[codesyntax lang="c"]
beego.Router("/debug/pprof", &controllers.ProfController{})
beego.Router("/debug/pprof/:app([\\w]+)", &controllers.ProfController{})
[/codesyntax]
创建控制器:...
主配置文件app.conf 内容如下:
[codesyntax lang="php"]
#默认配置
runmode = local
[local]
include "local.conf"
[dev]
include "dev.conf"
[test]
include "test.conf"
[prod]
include "prod.conf"
[/cod...
[codesyntax lang="c"]
package models
import (
"encoding/json"
"github.com/astaxie/beego/logs"
)
// beego 日志配置结构体
type LoggerConfig struct {
FileName string `json:"filename"` //将日志保...
懒汉模式
这种方式实现起来特别简单,直接判断一个实力是不是为nil, 如果是,则新生成;否则返回已有的。但它和多数语言一样,只适合用在单线程。
[codesyntax lang="c"]
type SingleTon struct {
}
var instance *SingleTo...
Go语言标准库内建提供了net/http包
处理HTTP请求
使用 net/http 包提供的 http.ListenAndServe() 方法,可以在指定的地址进行监听, 开启一个HTTP,服务端该方法的原型如下:
func ListenAndServe(addr string, handler Handler)...
JSON
Go语言内置的encoding/json 标准库
插件:github.com/pquerna/ffjson
JSON编码:func Marshal(v interface{}) ([]byte, error)
JSON解码:func Unmarshal(data []byte, v interface{}) error
[codesyntax lang="c"]...
协程
与传统的系统级线程和进程相比,协程的大优势在于其“轻量级”,可以轻松创建上百万个而不会导致系统资源衰竭,而线程和进程通常多也不能超过1万个。这也是协程也叫轻量级线程的原因。
goroutine--Go对协程的实现 :
go + ...
面向对象
[codesyntax lang="c"]
// main
package main
import (
"fmt"
)
/*func compare(a, b int) bool {
return a < b
}*/
type Point struct {
px float32
py float32
}
func (point *Point) setXY(...
我们可以controller获得Ctx,然后进行后续操作,比如设置cookie。
[codesyntax lang="c"]
func (c *LoginController) Post() {
c.Ctx.SetCookie("uname", uname, maxAge, "/")
}
[/codesyntax]
同时,我们也可以通过获...
default.go
[codesyntax lang="c"]
package controllers
import (
"github.com/astaxie/beego"
)
type MainController struct {
beego.Controller
}
func (c *MainController) Get() {
c.Data["Website"] = "bee...