GO语言
文章平均质量分 72
渡人先渡己
个人github github.com/marco2013
展开
-
GO 安装
Install the Go tools ¶If you are upgrading from an older version of Go you must first remove the existing version. Linux, Mac OS X, and FreeBSD tarballs ¶Download the archive and extract转载 2017-09-08 14:46:32 · 695 阅读 · 0 评论 -
go语言解析XML
per.xml 准备被读取的数据persons> person name="张三" age="20"> gender>男gender> interests> interest>编程interest> interest>阅读interest> interests> salary原创 2018-02-06 10:19:59 · 593 阅读 · 0 评论 -
go 提供网络服务功能
package mainimport ( "fmt" _ "common/utils" "net/http" "github.com/gorilla/mux" "github.com/urfave/negroni")var ver string = "1.0.0"var staticHandler http.Handlerfun原创 2018-02-12 10:11:56 · 304 阅读 · 0 评论 -
go 文件与文件夹相关操作
package main; import ( "os" "log" "time" "fmt") //一些常用的文件操作函数 func main() { //创建目录 //perm权限设置,os.ModePerm为0777 err := os.Mkdir("./tmp", os.ModePerm); if err != n转载 2018-02-06 20:29:42 · 1145 阅读 · 0 评论 -
Go超时(timeouts)实例
超时对于连接到外部资源或在不需要绑定执行时间的程序很重要。在Go编程中由于使用了通道和选择(select),实现超时是容易和优雅的。在这个示例中,假设正在执行一个外部调用,2秒后在通道c1上返回其结果。这里是 select 实现超时。 res:= <-c1等待结果和<-Time。等待在超时1秒后发送一个值。 由于选择继续准备好第一个接收,如果操作超过允许的1秒,则将按超时情况处理。如果...转载 2018-03-08 16:22:15 · 3331 阅读 · 0 评论 -
go xml 解析与生成
package mainimport ( "encoding/xml" "fmt")type assets struct { XMLName xml.Name `xml:"Assets"` Version string `xml:"version,attr"` Asset []asset `xml:"Asset"`}type ass...原创 2018-02-08 14:19:27 · 4186 阅读 · 1 评论 -
FTP 协议以及断点续传
背景: 由于移动端业务的需求,应用到了ftp的文件上传功能,并考虑到移动端网络的不稳定性,需要加入断点续传功能。详细介绍: FTP,文件传输协议是TCP/IP协议组中的协议之一。包括两部分,ftp服务器和ftp客户端。FTP服务器用来存储文件,用户则使用ftp客户端通过ftp协议访问位于ftp服务器上的资源。另外,默认ftp协议使用TCP端口中的21端口。我想这个最基本的ftp知识,大家应...原创 2018-02-23 11:21:54 · 11758 阅读 · 0 评论 -
Golang CSP并发模型
Golang CSP并发模型 今天介绍一下 go语言的并发机制以及它所使用的CSP并发模型CSP并发模型CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象,它不关注...转载 2018-03-22 16:35:40 · 1507 阅读 · 0 评论 -
Go语言基础学习-指针与切片操作
一.值,指针和引用类型 与C和C++不同 Go语言中的数组是按值传递的,所以传递一个大数组的代价特别大,幸运的是,在Go语言中不常用数组,因为我们可以用切片代替(所以切片和数组到底有什么区别?) 当一个变量传入函数时,会复制该变量的值到该函数作用域,所以本地变量在不使用时会自动被垃圾回收,很多情况下我们希望自己来管理变量的生命周期而非由它的作用域决定。所以通过使用指针,...转载 2018-03-13 10:59:33 · 1091 阅读 · 0 评论 -
go client get/post
func httpPost(pBody string) { resp, err := http.Post("http://101.132.137.62:80/otv/lizhiyun/live/rtmp_stop", "application/x-www-form-urlencoded", strings.NewReader(pBody)) if err != nil { log....原创 2017-10-08 12:04:42 · 916 阅读 · 0 评论 -
golang 垃圾回收 gc
http://ruizeng.net/golang-gc-internals/ 摘要在实际使用go语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究。本文对研究的结果进行一下总结。什么是垃圾回收?曾几何时,内存管理是程序员开发应用的一大难题。传统的系统级编程语言(主要指C/C++)中,程序员必须对内存小心的进行管理操作,控制内存的申请及释放。稍有不慎,就可...转载 2018-03-21 11:08:05 · 469 阅读 · 0 评论 -
FFMPEG 实现混音,加水印,加文字,模糊水印任意滤镜组合
一共15种组合一下搞定;先伪代码没逻辑错误,然后就撸正式代码,后面测试就有点小顺利了伪代码:根据参数构造ffmpeg参数命令构造元素视频方面有水印,文字,去水印;音频方面有混音一个构造顺序: 先音频后视频 1:音频 2:水印 3:文字 4:去水印伪代码audioExist = falsevideoExist = falsevar filterPara stringvar tailPa...原创 2018-04-19 18:33:06 · 3698 阅读 · 0 评论 -
go 服务端读取文件
1, 读取单个文件func extractFace(w http.ResponseWriter, req *http.Request) { crossdomain(w, req) //parse json //body, err := ioutil.ReadAll(req.Body) // if err != nil { // log.Error("in streamsTrans r...原创 2018-05-03 11:22:33 · 1161 阅读 · 0 评论 -
go post 请求主体
root@localhost:~# curl -id "first_name=marco&last_name=qiu" 127.0.0.1:8080/bodyHTTP/1.1 200 OKDate: Fri, 10 May 2019 08:43:21 GMTContent-Length: 31Content-Type: text/plain; charset=utf-8fir...原创 2019-05-10 16:49:33 · 428 阅读 · 0 评论 -
go 分析与创建JSON
JSON(JavaScript Object Notation)衍生与JavaScript语言的一种轻量级文本数据格式1, 分析JSON方法一: 使用Unmarshal函数步骤: 1)创建一些用于包含JSON数据的结构 2)通过json.Unmarshal函数, 把JSON数据解封到结构里面例子:要解析的文件 post.json{ "id" ...原创 2019-05-18 18:48:56 · 2706 阅读 · 0 评论 -
golang中map声明及初始化
map的声明 var m1 map[string]int map[key]value key必须支持==(避免使用浮点型)value不做规范 map的初始化 方式1 var m1 map[string]int=map[sting]int{“key”:0} 方式2 m2:=make(map[string]int) 注意: map声原创 2018-01-09 11:24:14 · 4317 阅读 · 0 评论 -
go server
package mainimport ( "fmt" "io/ioutil" "net/http")func myHandle(w http.ResponseWriter, r *http.Request){ defer r.Body.Close() con, _ := ioutil.ReadAll(r.Body) fmt.Println(string(con)原创 2017-10-07 15:27:12 · 1198 阅读 · 0 评论 -
GO 测试
测试创建工作目录 C:\>Go_WorkSpace。文件名: test.go,代码如下:package mainimport "fmt"func main() { fmt.Println("Hello, World!")}使用 go 命令执行以上代码输出结果如下:C:\Go_WorkSpace>go run test.goHello, World!转载 2017-09-08 15:37:03 · 303 阅读 · 0 评论 -
编程语言语法学习指南
http://www.runoob.com/ go 编译器http://www.runoob.com/try/runcode.php?filename=helloworld&type=go原创 2017-09-10 11:17:43 · 579 阅读 · 0 评论 -
go json
// streamPushpackage mainimport ( "encoding/json" "fmt" "io/ioutil" "libconf/goini" log "log4go" "mahonia" "net/http" "net/url" "os/exec" //"strconv" //"net" "strings")//for img_txt原创 2017-10-08 17:34:09 · 260 阅读 · 0 评论 -
LiteIDE
liteide搭建下载liteide,地址:https://www.golangtc.com/download/liteide,如: liteidex32.1.linux32-qt4-system.tar.bz2tar jxvf liteidex32.1.linux64-qt4.tar.bz2进入到解压后的目录/home/xxx/Desktop/liteide/bin 直接运原创 2017-10-06 10:25:51 · 1158 阅读 · 0 评论 -
go enum/const
package mainimport "fmt"//1.枚举的使用// 枚举指一系列相关的常量,比如下面关于一个星期中每天的定义。通过上一节的例子,我们// 看到可以用在 const 后跟一对圆括号的方式定义一组常量,这种定义法在Go语言中通常用于定义// 枚举值。Go语言并不支持众多其他语言明确支持的 enum 关键字。// 下面是一个常规的枚举表示法,其中定义了一系列整型常量:c原创 2017-11-01 18:19:33 · 3856 阅读 · 0 评论 -
提供读配置文件的监控服务器程序
// delayLiveAlarmpackage mainimport ( //"fmt" "libconf/goini" log "log4go" "net/http" "strconv" "time")var msg string = ""var result string = "1"func trimstring(src string) string { rs原创 2017-10-16 18:07:51 · 389 阅读 · 0 评论 -
Go语言_Go_Golang 逐行读取文件
f, err := os.Open("test.txt") if err != nil { panic(err) } defer f.Close() rd := bufio.NewReader(f) for { line, err := rd.ReadString('\n') //以'\n'为结束符读入一行原创 2017-12-22 11:00:12 · 942 阅读 · 0 评论 -
go 中执行shell 得到并打印输出
func main() {arg := "curl -I \"www.baidu.com\""cmd := exec.Command("/bin/sh", "-c", arg)out, err := cmd.Output()if err != nil { fmt.Println(err)}fmt.Println(string(out))}原创 2018-01-12 09:50:11 · 6945 阅读 · 1 评论 -
go实现的一个监控日志报警程序
package mainimport ( "compile" "encoding/json" "flag" "fmt" "io/ioutil" "libconf/goini" log "log4go" "net/http" "os" "path/filepath" "regexp" "strings" "time")const ( AlarmType = io原创 2017-12-29 15:43:22 · 4234 阅读 · 0 评论 -
go date
package mainimport ( "fmt" "time")func main () { t := time.Now() fmt.Println(t) t1 := time.Now().Format("2006-01-02 15:04:05") fmt.Println(t1) fmt.Println(time.Now().Unix()) str_time ...原创 2017-10-10 10:17:04 · 1055 阅读 · 0 评论 -
go 中的面向对象
前言 有过C++语言学习经历的朋友都知道,面向对象主要包括了三个基本特征:封装、继承和多态。封装,就是指运行的数据和函数绑定在一起,C++中主要是通过this指针来完成的;继承,就是指class之间可以相互继承属性和函数;多态,主要就是用统一的接口来处理通用的逻辑,每个class只需要按照接口实现自己的回调函数就可以了。 作为集大成者的Go语言,自然不会在面向对象上面无所作为。相比较C++、J原创 2018-01-05 14:58:02 · 304 阅读 · 0 评论 -
golang 语言的测试
测试是编程工作中非常重要的一环,但很多人却忽视了这一点,又或者只是把测试看作是一种可有可无的补充手段。Go 语言提供了一些基本的测试功能,这些功能初看上去可能会显得非常原始。1, Go 与测试 最主要的是testing 包。 net/http/httptest 包是另一个与Web 应用编程有关的库,这个库是基于testing 库实现的。 ...原创 2019-05-28 17:56:09 · 629 阅读 · 0 评论