Go语言中文网 为您找到相关结果 3287

Golang简单写文件操作的四种方法

载别人的代码 http://www.android100.org/html/201407/28/47230.html package mainimport ( "bufio" //缓存IO "fmt" "io/ioutil" //io 工具包 "io" "os" )func check(e error) { if e != nil { panic(e) } }/** * 判断文件是否存在 存在返回 true 不存在返回false */ func checkFileIsExist(filename string) (bool) { var exist = true; if _, err := os.Stat(filename); os.IsNotExist(err) { exist = fal...阅读全文

博文 2014-12-18 18:00:01 bluezwt

golang 读写文件

1.读文件 package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) //读取文件需要经常进行错误检查,这个帮助方法可以精简下面的错误检查过程。 func check(e error) { if e != nil { panic(e) } } func main() { //也许大部分基本的文件读取任务是将文件内容读取到内存中。 dat, err := ioutil.ReadFile("/tmp/dat") check(err) fmt.Print(string(dat)) //你经常会想对于一个文件是怎么读并且读取到哪一部分进行更多的控制。对于这个任务,从使用 os.Open打开一个文件获取一个 os.File 值开始。 f, ...阅读全文

博文 2015-04-21 03:00:01 benlightning

golang 中fmt用法

fmt 包中的函数和方法 本文转自Golang学习-fmt包: http://www.cnblogs.com/golove/p/3286303.html // format.go ------------------------------------------------------------ // Fprintf 将参数列表 a 填写到格式字符串 format 的占位符中 // 并将填写后的结果写入 w 中,返回写入的字节数 func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) // Printf 将参数列表 a 填写到格式字符串 format 的占位符中 // 并将填写后的结果写入...阅读全文

博文 2014-10-10 15:00:01 chenbaoke

Golang中的error类型

Golang中的error类型 error类型本身就是一个预定义好的接口,里面定义了一个method type error interface { Error() string } 生成一个新的error并返回 一般有以下几种处理方式: package main import ( "errors" "fmt" ) type Customerror struct { infoa string infob string Err error } func (cerr Customerror) Error() string { errorinfo := fmt.Sprintf("infoa : %s , infob : %s , original err info : %s ", cerr.info...阅读全文

博文 2015-06-27 03:00:00 Goden

golang中发送http请求的几种常见情况

整理一下golang中各种http的发送方式 最初的一些项目中,很多的地方都使用到了golang发送http请求,之后再对请求收到的结果进行一些处理,所用到的模式也比较固定,这里整理一下集中http的发送方式,先记录这么多,再一点一点添加。 最基本的场景 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:client.Do(request) -> 处理返回结果,每一步的过程都可以设置一些具体的参数,下面是一个最朴素最基本的例子: //question ???将stdout重定向为response信息??? package main import ( "fmt" "io" "net/http" "os" ) f...阅读全文

博文 2015-07-20 03:00:00 Goden

golang 中regexp包用法

本文转自Golove博客:http://www.cnblogs.com/golove/p/3270918.html regexp 包中的函数和方法 // regexp.go ------------------------------------------------------------ // 判断在 b 中能否找到正则表达式 pattern 所匹配的子串 // pattern:要查找的正则表达式 // b:要在其中进行查找的 []byte // matched:返回是否找到匹配项 // err:返回查找过程中遇到的任何错误 // 此函数通过调用 Regexp 的方法实现 func Match(pattern string, b []byte) (matched bool, err e...阅读全文

博文 2014-11-10 22:00:02 chenbaoke

golang fmt.printf()

package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。 fmt.Printf("%+v\n", p) // {x:1 y:2} //%#v 形式则输出这个值的 Go 语法表示。例如,值的运行源代码片段。 fmt.Printf("%#v\n", p) // main.point{x:1, y:2} //需要打印值的...阅读全文

博文 2015-04-21 03:00:01 benlightning

golang中strings包用法

本文转自Golove博客:http://www.cnblogs.com/golove/p/3236300.html strings 包中的函数和方法 // strings.go ------------------------------------------------------------ // Count 计算字符串 sep 在 s 中的非重叠个数 // 如果 sep 为空字符串,则返回 s 中的字符(非字节)个数 + 1 // 使用 Rabin-Karp 算法实现 func Count(s, sep string) int func main() { s := "Hello,世界!!!!!" n := strings.Count(s, "!") fmt.Println(n) //...阅读全文

博文 2016-01-18 23:00:04 chenbaoke

golang 中bufio包的用法

本文转自GOlove博客:http://www.cnblogs.com/golove/p/3282667.html 并在此基础上进行了一些添加修改. bufio 包中的函数和方法 // bufio 包实现了带缓存的 I/O 操作 // 它封装一个 io.Reader 或 io.Writer 对象 // 使其具有缓存和一些文本读写功能 ------------------------------------------------------------ // bufio.go ------------------------------------------------------------ type Reader struct { buf []byte rd io.Reader // ...阅读全文

博文 2015-06-22 05:00:21 chenbaoke

go语言的标准输入-scan 和bufio

除了f mt 和 os ,我们还需要用到 bufio 来实现带缓冲输入(input)和输出(output) 读取用户的输入数据 我们怎样读取用户从键盘(控制台)输入的数据?输入指从键盘或其它标准输入(os.Stdin)读取数据。最简单的方法是使用fmt包里的Scan-或Sscan-系列函数,下面用个例子说明一下: //read input from the console: package main import "fmt" var ( firstName, lastName, s string i int f float32 input = "56.12 / 5212 / Go" format = "%f / %d / %s" ) func main() { fmt.Println("Pl...阅读全文

博文 2014-10-22 12:00:01 学思

使用Go env命令设置Go的环境

前言 在进行Go开发的时候,设置Go的环境变量信息是必须的。下面介绍windows和Linux,以及Go自身提供的命令进行设置的形式 Linux的设置 In Linux or macOS, you can execute the below commands.(在Linux或者macOS,你可以执行下面的命令) # Enable the go modules feature export GO111MODULE=on # Set the GOPROXY environment variable export GOPROXY=https://goproxy.io 但是这种有个不好的地方,就是如果换一个终端或者重新开机,就没有了。那么我推荐,在/etc/profile.d/这个文件夹下面,写一个...阅读全文

博文 2019-11-05 00:04:18 liuxuzxx

golang中io包用法(二)

本文转自https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter01/01.1.md,并在此基础上进行修改. io 包为I/O原语提供了基本的接口。它主要包装了这些原语的已有实现。 由于这些接口和原语以不同的实现包装了低级操作,因此除非另行通知,否则客户端不应假定它们对于并行执行是安全的。 在io包中最重要的是两个接口:Reader和Writer接口。本章所提到的各种IO包,都跟这两个接口有关,也就是说,只要实现了这两个接口,它就有了IO的功能。 Reader接口 Reader接口的定义如下: type Reader interface { Read(p []byte) ...阅读全文

博文 2015-01-27 10:00:12 chenbaoke

Golang HTTP GET POST请求

package main import ( "fmt" "io/ioutil" "net/http" "os" "strings" ) func GET() { client := &http.Client{} reqest, err := http.NewRequest("GET", "http://www.baidu.com/", nil) //建立一个请求 if err != nil { fmt.Println("Fatal error ", err.Error()) os.Exit(0) } //Add 头协议 reqest.Header.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;...阅读全文

博文 2015-05-19 04:00:00 dq4402935

golang 编码转换 gbk

(一)golang 官方转换包 go get golang.org/x/text/encoding https://godoc.org/golang.org/x/text 注:Go里面内建仅支持UTF8字符串编码,因此如果你用fmt.Printf之类的函数无法正常打印出字符串内容,而只能是一堆乱码! 导入package: import ( "bytes" "fmt" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform" "io/ioutil" ) gbk转换: src:="编码转换内容内容" data, _ := ioutil.ReadAll(transform.NewReader(bytes...阅读全文

博文 2015-01-17 16:00:36 ziyouzhiqiu

Go http server

package main import ( "io" "net/http" "log" ) // hello world, the web server func HelloServer(w http.ResponseWriter, req *http.Request) { io.WriteString(w, "hello, world!\n") } func main() { http.HandleFunc("/hello", HelloServer) err := http.ListenAndServe(":12345", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } } 上面是一个简单的go http服务器端程序。 ...阅读全文

博文 2015-09-22 03:00:01 kuipertan

Go 记录日志——log包

Golang's log模块主要提供了3类接口。分别是 “Print 、Panic 、Fatal ”,对每一类接口其提供了3中调用方式,分别是 "Xxxx 、 Xxxxln 、Xxxxf",基本和fmt中的相关函数类似,下面是一个Print的示例: package main import ( "log" ) func main(){ arr := []int {2,3} log.Print("Print array ",arr,"\n") log.Println("Println array",arr) log.Printf("Printf array with item [%d,%d]\n",arr[0],arr[1]) } 会得到如下结果: 2016/12/15 19:46:19 Pri...阅读全文

博文 2016-12-15 13:00:03 吃一堑消化不良

golang 读取配置文件

unix 风格的配置文件 [default] path= c:/go version = 1.44 [test] num = 666 something = wrong #注释1 #fdfdfd = fdfdfd 注释整行 refer= refer //注释3 config.go package conf import ( "bufio" "io" "os" "strings" ) const middle = "=========" type Config struct { Mymap map[string]string strcet string } func (c *Config) InitConfig(path string) { c.Mymap = make(map[string]...阅读全文

博文 2015-06-18 17:04:36 u014798316

Golang-上传-and-接收-文件

package main import ( "fmt" "io" "net/http" "log" ) // 获取大小的借口 type Sizer interface { Size() int64 } // hello world, the web server func HelloServer(w http.ResponseWriter, r *http.Request) { if "POST" == r.Method { file, _, err := r.FormFile("userfile") if err != nil { http.Error(w, err.Error(), 500) return } defer file.Close() f,err:=os.Create("fi...阅读全文

博文 2015-03-03 21:48:18 nulijiabei

Go 解决"unsupported protocol scheme"问题

【问题】 我写了一段程序,代码如下: package main import ( "io/ioutil" "net/http" "log" ) func main() { resp, err := http.Get("www.baidu.com") if err != nil { log.Fatalln(err) } body, err := ioutil.ReadAll(resp.Body) defer resp.Body.Close() if err != nil { log.Fatalln(err) } log.Println(string(body)) } 执行的时候报了下面的错误: Get www.google.com: unsupported protocol scheme ""...阅读全文

博文 2016-12-21 12:00:02 吃一堑消化不良

GO语言运行cmd命令逐行实时输出执行过程

Golang运行cmd命令逐行实时输出执行过程,注意,不是一次输出所有的内容,而是按照执行的过程,逐行逐行的实时显示出来 代码如下: package main import ( "bufio" "fmt" "io" "os/exec" ) func main() { command := "ls" params := []string{"-l"} //执行cmd命令: ls -l execCommand(command, params) } func execCommand(commandName string, params []string) bool { cmd := exec.Command(commandName, params...) //显示运行的命令 fmt.Println(...阅读全文

博文 2015-06-17 23:07:41 windvix

Go 系列教程 —— 35. 读取文件

![reading files](https://raw.githubusercontent.com/studygolang/gctt-images/master/golang-series/golang-read-files.png) 欢迎来到 [Golang 系列教程](https://studygolang.com/subject/2)的第 35 篇。 文件读取是所有编程语言中最常见的操作之一。本教程我们会学习如何使用 Go 读取文件。 本教程分为如下小节。 - 将整个文件读取到内存 - 使用绝对文件路径 - 使用命令行标记来传递文件路径 - 将文件绑定在二进制文件中 - 分块读取文件 - 逐行读取文件 ## 将整个文件读取到内存 将整个文件读取到内存是最基本的文件操作之一。这需要使用...阅读全文

博文 2018-09-04 23:19:49 heyulong

go json解析Marshal和Unmarshal

http://www.tuicool.com/articles/BFruI3 go语言提供一个json解析的包。见 http://golang.org/pkg/encoding/json/ 官方同时提供了一篇文章 JSON and Go 讲述json包的用法, 该文章同时存在中文翻译: JSON与Go 。 看过上述两篇文章后,基本使用应该就没问题了。 同时,贴几个官方的例子,方便理解。 Decoder: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package main import ( "encoding/json" "fmt" "io" "log" "str...阅读全文

博文 2016-04-14 02:00:01 jiangxiangxuan

golang 逐行读取文件

package main import ( "bufio" "fmt" "io" "os" ) func main() { fi, err := os.Open("C:/Documents and Settings/xxx/Desktop/tax.txt") if err != nil { fmt.Printf("Error: %s\n", err) return } defer fi.Close() br := bufio.NewReader(fi) for { a, _, c := br.ReadLine() if c == io.EOF { break } fmt.Println(string(a)) } } ================一次性读取=================...阅读全文

博文 2015-04-07 14:00:00 rojas

golang中io/ioutil包用法

本文转自Golove博客:http://www.cnblogs.com/golove/p/3278444.html ,并在此基础上进行添加修改. io/ioutil 包中的函数和方法 // ioutil.go ------------------------------------------------------------ // ReadAll 读取 r 中的所有数据 // 返回读取的数据和读取过程中遇到的任何错误 // 如果读取成功,则 err 返回 nil,而不是 EOF func ReadAll(r io.Reader) ([]byte, error) func main() { s := strings.NewReader("Hello World!") ra, _ := io...阅读全文

博文 2015-06-17 20:20:53 chenbaoke

[go语言] golang的goroutine机制和runtime.GOMAXPROCS

之前对golang的goroutine机制和runtime.GOMAXPROCS不是很理解,今天抽空研究了一下,学习了其他大牛的文章。把自己的理解写下来。如有错误,请指正 golang的goroutine机制有点像线程池: 一、go 内部有三个对象: P对象(processor) 代表上下文(或者可以认为是cpu),M(work thread)代表工作线程,G对象(goroutine). 二、正常情况下一个cpu对象启一个工作线程对象,线程去检查并执行goroutine对象。碰到goroutine对象阻塞的时候,会启动一个新的工作线程,以充分利用cpu资源。所有有时候线程对象会比处理器对象多很多 我们用如下图分别表示P、M、G 在单核情况下,所有goroutine运行在同一个线程(M0)中,...阅读全文

博文 2015-03-08 05:00:01 EthanDorisHope

go语言之http

go语言http 1、net/http 包提供的 http.ListenAndServe() 方法,在指定的地址监听该方法用于在指定的 TCP 网络地址 addr 进行监听,然后调用服务端处理程序来处理传入的连 接请求。该方法有两个参数:第一个参数 addr 即监听地址;第二个参数表示服务端处理程序, 通常为空,这意味着服务端调用 http.DefaultServeMux 进行处理,而服务端编写的业务逻 辑处理程序 http.Handle() 或 http.HandleFunc() 默认注入 http.DefaultServeMux 中。2.处理https请求 func ListenAndServeTLS(addr string, certFile string, keyFile strin...阅读全文

博文 2018-11-14 18:35:09 PowerMichael

Golang -- 字节切片

Go 语言标准库 bytes ,实现了对字节数组的各种操作。 It is analogous to the facilities of strings package. (它和string 标准包提供的功能类似) 提供的功能如下; 字节切片 处理函数 基本处理函数 字节切片比较函数 前后缀检查函数 字节切片位置索引函数 分割函数 大小写处理函数 子字节切片处理函数 Buffer 对象 Reader 对象 字节切片处理函数 基本处理函数 共七个 Contains() 返回是否包含子切片 Count() 子切片非重叠实例的数量 Map() 函数,将byte 转化为Unicode,然后进行替换 Repeat() 将切片复制count此,返回这个新的切片 Replace() 将切片中的一部分 替换为...阅读全文

博文 2015-03-26 11:00:16 xiaorenwuzyh

golang文件下载

golang文件下载 func downloadFile(fileFullPath string, res *restful.Response) { file, err := os.Open(fileFullPath) if err != nil { res.WriteEntity(_dto.ErrorDto{Err: err}) return } defer file.Close() fileName := path.Base(fileFullPath) fileName = url.QueryEscape(fileName) // 防止中文乱码 res.AddHeader("Content-Type", "application/octet-stream") res.AddHeader(...阅读全文

博文 2016-11-18 08:00:03 yueguanyun

golang:xpath选择器“htmlquery”简单用法

在做爬虫时,经常要用到html解析器提取数据,Python里面有神器lxml,go里面可以选择htmlquery或者goquery。其中htmlquery使用xpath选择器,goquery使用css选择器。就使用体验来说,htmlquery更方便一些,这儿主要介绍htmlquery的一些基本用法。 htmlquery是用于HTML的XPath数据提取库,可让通过XPath表达式从HTML文档中提取数据,使用起来很简单方便。xpath语法见https://www.w3school.com.cn/xpath/xpath_syntax.asp。 htmlquery安装: go get github.com/antchfx/htmlquery 经常使用到的函数有: func Parse(r io....阅读全文

博文 2019-10-30 18:32:53 aside section._1OhGeD

Golang 逐行读取文件

golang的错误处理有点奇怪. 插入代码时候, 使用插入代码(推荐) 出现错误: 无法解析服务器的 DNS 地址。 使用插入代码, 直接是文本插入, 连着色都没有. 插入图片要地址, 不能上传. 下载客户端, 转到微软的网站时已经是: We can’t find that page. 写个博客都这么难比较失望. package jutil import ( "bufio" "io" "os" "strings" ) func ReadLine(fileName string, handler func(string)) error { f, err := os.Open(fileName) if err != nil { return err } buf := bufio.NewReade...阅读全文

博文 2015-02-24 03:00:00 zoltun

golang几种post方式

用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("Connect...阅读全文

博文 2015-06-25 03:00:00 zhangqingping

基于gin和vue开发的全栈后台管理系统脚手架gin-vue-admin

## 开发文档 [在线文档](http://doc.henrongyi.top/) [http://doc.henrongyi.top/](http://doc.henrongyi.top/) 本模板使用前端ui框架为 element-ui https://element.eleme.cn/#/zh-CN 前端组件可查看elementUi文档使用 ## 基本介绍 >GIN-VUE-ADMIN是一个基于vue和gin开发的全栈前后端分离的后台管理系统,拥有jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供了多种示例文件,让大家把更多时间专注在业务开发上。 ## 技术选型 1. 后端采用golang框架gin,快速搭建基础restful风...阅读全文

开源项目 2020-04-02 15:37:55 奇淼

golang Http Request

一起看一下golang的HTTP包怎么write Request信息 先看一下看golang http Request的struct,不解释,慢慢看(HTTP权威指南,RFC文档) type Request struct { // Method specifies the HTTP method (GET, POST, PUT, etc.). // For client requests an empty string means GET. Method string // URL specifies either the URI being requested (for server // requests) or the URL to access (for client request...阅读全文

博文 2015-11-16 13:00:01 golang_yh

golang 利用http.Client POST数据

package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" ) func main() { v := url.Values{} v.Set("huifu", "hello world") body := ioutil.NopCloser(strings.NewReader(v.Encode())) //把form数据编下码 client := &http.Client{} req, _ := http.NewRequest("POST", "http://192.168.2.83:8080/bingqinggongxiang/test2", body) req.Header.Set("Content-Type"...阅读全文

博文 2014-11-24 11:00:01 别人说我名字很长

golang中os/exec包用法

exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o. func LookPath(file string) (string, error) //LookPath在环境变量中查找科执行二进制文件,如果file中包含一个斜杠,则直接根据绝对路径或者相对本目录的相对路径去查找 func main() { f, err := exec.LookPath("ls") if err != nil { fmt.Println(err) } fmt.Println(f) // /bin/ls } type Cmd //表示一个正在准备或者正在运行的外部命令 type Cmd struct { Path string //运...阅读全文

博文 2015-06-17 20:02:21 chenbaoke

Golang计算MD5

Golang计算MD5 1.单向加密 什么是单向加密算法。简而言之就是不可解密的加密方法,也叫作非可逆加密。这些学术 解释都不用管它,反正就是一群数学家老爷爷通过各种证明得到的一种方法,用这种方法加密 过的东西,地球上现有的人类在有限的时间内是无法解密的,包括加密者自己。既然加密者自己 都无法解密,那这乖僻的加密算法有个毛用阿?哪些场景需要这种有去无回的加密方式呢? 这里先了解下单向加密的特征: 首先,不可解密性在上面已经提到了,目的就是掩藏明文。其次单向加密算法的另外两个特征 使得它更接地气,第一是任意两段明文数据,加密以后的密文不能是相同的; 第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。这样当我们需要表征一段 唯一的内容,但是有不想别人知道该段内容时或者仅仅是为一个内容...阅读全文

博文 2014-12-30 12:00:01 YangJunjie

golang hmac的sha1加密例子

想要用go写btcchina平台的接口,api加密形式在php中是hash_hmac('sha1',$string,$key); go中的一样有hmac包,下面是代码 package main import ( "crypto/hmac" "crypto/sha1" "fmt" "io" ) func main() { //sha1 h := sha1.New() io.WriteString(h, "aaaaaa") fmt.Printf("%x\n", h.Sum(nil)) //hmac ,use sha1 key := []byte("123456") mac := hmac.New(sha1.New, key) mac.Write([]byte("aaaaaa")) fmt.Pri...阅读全文

博文 2015-03-24 10:27:13 舞林

golang中bytes包用法

本文转自 Golove的博客http://www.cnblogs.com/golove/p/3287729.html bytes 包中的函数和方法 // bytes 包实现了用于操作 []byte 的函数,类似于 strings 包中的函数 // bytes.go ------------------------------------------------------------ // Compare 用于比较两个 []byte,并返回 int 型结果 // a == b 返回 0 // a < b 返回 -1 // a > b 返回 1 // 如果参数为 nil 则相当于传入一个空 []byte func Compare(a, b []byte) int ---------------...阅读全文

博文 2016-01-31 20:00:01 chenbaoke

golang zip 压缩,解压(含目录文件)

每天学习一点go src。 今天学习了zip包的简单使用,实现了含目录的压缩与解压。 写了两个方法,实现了压缩、解压。 package ziptest import ( "archive/zip" "io" "os" "strings" ) //压缩文件 //files 文件数组,可以是不同dir下的文件或者文件夹 //dest 压缩文件存放地址 func Compress(files []*os.File, dest string) error { d, _ := os.Create(dest) defer d.Close() w := zip.NewWriter(d) defer w.Close() for _, file := range files { err := compress...阅读全文

博文 2016-07-06 00:00:00 xiaofengshuyu

golang http HandleFunc

golang http的handle模块(一般也称为钩子模块),通过高级语言的匿名函数很容易实现这种内嵌功能的handle 我们一般这样使用golang的http HandleFunc来为http的server端做相应的处理 /*********************************************/ http.HandleFunc("/", xxx_FUN) err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal("ListenAndServe: ", err) } /*********************************************/ 我们再深入源码仔细看看http.H...阅读全文

博文 2015-11-09 18:00:07 golang_yh

[golang]内存不断增长bytes.makeSlice

golang写的一个图片服务器,在批量下载压缩时候发现内存不断增长。。。。 幸好golang自带内存占用日志结合分析工具可以方便看到内存分布。 详细可参考: http://blog.golang.org/profiling-go-programs 可以实时统计CPU\内存信息。 这里主要说一下内存怎么搞。CPU分析的参考之前的一篇文章。 //需要包含这个pprof包 import "runtime/pprof" //这里接收内存统计信息保存文件 var memprofile = flag.String("memprofile", "", "write memory profile to this file") //这里是判断是否需要记录内存的逻辑 if *memprofile != "" {...阅读全文

博文 2015-04-04 03:00:00 zhangqingping

GoBelieve-国内唯一开源IM服务

1. 一小时接入 专注IM,无冗余功能 几行代码,一小时接入 省时省力。2. 自由定制 提供最新源码, 自行二次开发,业务协议 交互视觉均可根据业务需求 自由定制。3. 完全开源 国内唯一开源IM服务,所有源码在Github开放,与线上版本一致4. 私有云部署 彻底排除窃取隐私可能,支持自有域名部署可搭建私有云,无需更新客户端,即可热切换到私有服务,来去自由。5. 官网地址 http://developer.gobelieve.io...阅读全文

博文 2015-06-17 16:00:02 GoBelieve

golang HTTP客户端

Get, Head, Post, and PostForm 可以构成 HTTP (or HTTPS) requests: resp, err := http.Get("http://example.com/") ... resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) ... resp, err := http.PostForm("http://example.com/form", url.Values{"key": {"Value"}, "id": {"123"}}) 客户端必须关闭response的body: resp, err := http.Get("http://example.com/"...阅读全文

博文 2014-10-04 19:26:08 ggaaooppeennngg

使用Golang开发微信公众平台-接入验证

使用Golang开发微信公众平台-接入验证 十二 18 bigwhite技术志 Amazon, DigitalOcean, EC2, Go, Golang, http, linode, PHP, Wechat, 亚马逊, 公众平台, 微信, 测试号, 移动互联网, 订阅号 2 Comments 今年我涉猎的领域有些“广泛”,并且有那么一点“跳跃”:从上半年的终端(游戏)开发到下半年golang、docker以及目前将要提及的微信公众平台 接口开发,似乎有些远离了老本行C以及技术管理的内容。但在这个转型以及创新驱动的时代,这显然是顺势而为。寻求与新兴领域的主动接轨,在实打实的实践 中,扩大了自己的视野,并可以进一步甄别发现适合自己的领域。 移动互联网时代,微信平台一枝独秀,是社交领域的巨人,但...阅读全文

博文 2015-01-20 09:22:59 bigwhite

golang中image包用法

image包实现了一个基本的2D图像库,该包中包含基本的接口叫做image,这个里面包含color,这个将在image/color中描述, image接口的值创建方式有如下几种: 1调用NewRGBA和NewPaletted 2解码一个包含gif.jpen或者png格式的image数据的io.Reader 首先介绍一些image接口 type Image //image是一个从颜色模型中采取color.Color的矩形网格 type Image interface { ColorModel() color.Model //ColorModel 返回图片的 color.Model Bounds() Rectangle //图片中非0color的区域 At(x, y int) color.Col...阅读全文

博文 2015-06-18 17:05:38 chenbaoke

golang解析json格式

golang解析json格式 项目中客户端和服务端的交互数据部分为json,因此在服务端就得解析,复杂的json解析起来其实还是挺费劲的。 交互的数据类似如下格式: {"sn":1,"ls":false,"bg":0,"ed":0,"ws":[{"bg":0,"cw":[{"sc":0,"w":"还"}]},{"bg":0,"cw":[{"sc":0,"w":"有点"}]},{"bg":0,"cw":[{"sc":0,"w":"眼熟"}]}]} 需要将json格式中的w字段取出来,并且拼成结果串进行展示 从json数组中获取ws ws是数组,数组元素为object cw是数组,数组元素为object w是string 从cw遍历获取w字段 初步实现如下: func RecResultJson...阅读全文

博文 2016-02-21 17:00:02 qq_33204116

Go os包

package main import ( "fmt" "io/ioutil" "os" "reflect" "time" ) func main() { dir, _ := os.Getwd() fmt.Println("dir:", dir) err := os.Chdir("d:/project/test2") dir, _ = os.Getwd() fmt.Println("dir:", dir) //参数不区分大小写 //不存在环境变量就返回空字符串 len(path) = 0 path := os.Getenv("gopath") fmt.Println(path) //返回有效group id egid := os.Getegid() fmt.Println("egid:", ...阅读全文

博文 2014-10-31 03:00:01 yumuxu

Golang文件操作整理

最近做的一点事情,用到了golang中不少文件操作的相关内容,创建,删除,遍历,压缩之类的,这里整理整理,希望能掌握的系统一点,把模糊的地方理清楚。 基本操作 文件创建 创建文件的时候,一定要注意权限问题,一般默认的文件权限是 0666 关于权限的相关内容,具体可以参考鸟叔p141 这里还是再回顾下,文件属性 r w x r w x r w x,第一位是文件属性,一般常用的 "-" 表示的是普通文件,"d"表示的是目录,golang里面使用os.Create创建文件的时候貌似只能使用0xxx的形式。比如0666就表示创建了一个普通文件,文件所有者的权限,文件所属用户组的权限,以及其他人对此文件的权限都是110表示可读可写,不可执行。 文件删除 文件删除的时候,不管是普通文件还是目录文件,都可...阅读全文

博文 2015-05-28 03:00:00 Goden

Go语言中反射包的实现原理(The Laws of Reflection)

前言 过去只是知道某些语言带有反射,但是一直没机会使用这种高级功能,所以也没有深入了解过。昨天看golang时里面提到reflection,既然这么多语言支持这个性质,那就深入了解下好了。这篇文档翻译自官方文档的The Laws of Reflection,翻译目的不是为了翻译,而是加深自己记忆以及理解,所以有些地方可能不会直译,因为我没那么高水平,有时自己能看懂,但是按着原话翻译出来给别人听感觉好难。某些专用名词会继续保留原文,有时,其实我觉得还是英文更加容易理解。 The Laws of Reflection翻译 计算机中提到的反射指的是程序借助某种手段检查自己结构的一种能力,通常就是借助编程语言中定义的各种类型(types)。同时反射也是困惑的最大来源之一。 在这篇文章中,我们尝试通过...阅读全文

博文 2015-01-04 14:00:01 kjfcpua