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

PyCharm Golang开发环境搭建(最方便快捷的GO语言开发环境)

IntelliJ太牛了。为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件。装Go插件还要下载插件项目源码,编译等等,Sublime还要输入python脚本,粘进去通不过,头疼。 突然悟出一个道理,如果你觉得当前手上的事情变得非常痛苦的时候,不是事情本身的问题,是你没找到好的解决方法的问题,或者说,“不是事情太痛苦,是你太笨了”。 在不停的装插件,尝试过程中,突然发现,PyCharm跟Idea一样,也是支持Go插件的,立马悟到,PyCharm可以开发GO,要Idea干毛。再一想,PyCharm和Idea都是IntelliJ的产品,支持应该不会差,于是果断放弃Idea。 在PyCharm(Idea一样)装GO插件,相当容易。 ...阅读全文

博文 2016-05-11 11:00:02 NerdWill

GO,Beego带公众号的个人博客

## 个人博客源码 > 包含最新评论,点击排行,档案统计,留言,评论,回复留言,回复评论,日志,主题颜色修改等等 > 演示站点 http://leechan.online ### 更新 v1.1.0 > 接下来的v1.1.0版本将支持绑定公众号 新功能: 1. 素材管理 1. 自定义菜单 2. 消息群发 3. 关键词回...阅读全文

开源项目 2019-12-27 20:09:18 Lee Chan

go语言:flag的使用

go语言flag的使用 package main import ( "flag" "fmt" ) var music_file *string = flag.String("file", "musicfile", "Use -file ") func main() { flag.Parse() fmt.Println(*music_file) } 例如文件为flagTest.go go run flagTest.go -file "../music/sun.mp3" 即可指定file参数的值。 如果直接使用go run flagTest.go -file则会提示你-file的使用说明.-file="musicfile": Use -file 如...阅读全文

博文 2014-10-21 23:00:00 x369201170

极路由1s(mt7620a)OpenWrt交叉编译go程序

起因,由于coolpy5核心转换到go语言开发,所以目前超人正在进行相关的技术攻关,在程序编写方面一切都相对顺利。由于coolpy5是一个真正的商业级性能的系统也考滤到coolpy之前的版本已经确定的coolpy是支持以家庭路由器为雾计算节点直接实现智能家居或智慧农业的离线解决方案,所以超人才进行了这一次技术预测试,也为以后coolpy这环节的闭环作准备工作。以下文章关于openwrt相关的基础将会略过,看不懂的朋友请自行查找相关知识点。 略过知识点: 1.linux基础(交叉编译基础) 2.openwrt管理(openwrt基础) 游戏开始: 1.首先通过putty连接到路由器看看路由器cpu架构/这里边有一个错误,你看到的所有cpu相关的描述都是mips字眼,其实极1s路由器的这个cpu...阅读全文

博文 2016-06-17 03:00:02 jacle169

http.ServeMux解析

## web server概述 使用go语言搭建一个web服务器是很简单的,几行代码就可以搭建一个稳定的高并发的web server。 ``` // 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(":8080", nil) if err != nil { log.Fatal("ListenAndServe: ", err) }...阅读全文

博文 2015-09-29 14:14:51 shanks

go语言函数作为参数传递

go语言函数作为参数传递,目前给我的感觉几乎和C/C++一致。非常的灵活。 import "fmt" import "time" func goFunc1(f func()) { go f() } func goFunc2(f func(interface{}), i interface{}) { go f(i) } func goFunc(f interface{}, args... interface{}) { if len(args) > 1 { go f.(func(...interface{}))(args) } else if len(args) == 1 { go f.(func(interface{}))(args[0]) } else { go f.(func())() }...阅读全文

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

腾讯云+校园服务器,360元3年4个月

1.注册新用户,老用户可以直接注册个新号,使用绑定银行卡的手机认证即可。 2.点击**参团链接**:有效期到3月9号10点:https://cloud.tencent.com/act/campus/group/detail?group=15533 3.购买1年,付120元,可送4个月 4.可续费两年,付款240 5.最后可以花**360元**购买到**3年4个月**的服务器时长。 6.**配置**是**1核2G内存** ...阅读全文

golang os.Args

package main import( "os" "fmt" ) func main(){ if len(os.Args)!=0{ fmt.Println(os.Args[0])// args 第一个片 是文件路径 } fmt.Println(os.Args[1]) // 第二个参数是, 用户输入的参数 例如 go run osdemo01.go 123 } /* 结果 C:\Users\lyl\AppData\Local\Temp\go-build048711186\command-line-arguments\_obj\exe\osdemo01.exe 123 *...阅读全文

博文 2017-11-15 09:03:06 304158

golang模板语法简明教程

【模板标签】 模板标签用"{{"和"}}"括起来 【注释】 {{/* a comment */}} 使用“{{/*”和“*/}}”来包含注释内容 【变量】 {{.}} 此标签输出当前对象的值 {{.Admpub}} 表示输出Struct对象中字段或方法名称为“Admpub”的值。 当“Admpub”是匿名字段时,可以访问其内部字段或方法,比如“Com”:{{.Admpub.Com}} , 如果“Com”是一个方法并返回一个Struct对象,同样也可以访问其字段或方法:{{.Admpub.Com.Field1}} {{.Method1 "参数值1" "参数值2"}} 调用方法“Method1”,将后面的参数值依次传递给此方法,并输出其返回值。 {{$admpub}} 此标签用于输出在模板中定义...阅读全文

博文 2015-05-13 12:00:01 ____追梦人

Golang 数组

声明&初始化 数组 数据是一个固定长度的数据类型,用户存储一段具有<<相同类型>>的元素的<<连续快>>。数据存储的类型可以使内置类型。整形 字符串 或某种机构类型 占用内存方式为<<连续分配>>。由于内存连续,CPU能把正在使用的数据缓存更久的时间。并且因为内存连续所以索引很容易计算,可以快速迭代数组中所有的元素。 初始化&声明 声明数组: 指定内部存储的数据类型、需要存储的数据数量(长度)、 //声明一个包含5个整形元素的数组 var array [5] int 数组规则:一旦声明之后元素类型&数组长度不能更改 声明完成之后进行初始化数组会把数组中的元素全部初始化成元素类型所对应的零值。整形对应的零值为0。 数组字面量 数组字面量是一种快速创建并初始化数组的方式。数组字面量允许声明数组里...阅读全文

博文 2018-06-29 16:34:47 我是不是小明

golang执行linux命令

golang exec 执行系统命令 golang 2014-09-25 13:17:44 2779 0 0 exec.Command() 最简单的方法: cmd := exec.Command("/bin/sh/", "-c", "linux命令") 或复杂的, 各个参数都要单独写 cmd := exec.Command("ls", "-l", "-a") package main import ( "bytes" "fmt" "os/exec" ) func main() { in := bytes.NewBuffer(nil) cmd := exec.Command("sh") cmd.Stdin = in go func() { in.WriteString("echo hello ...阅读全文

博文 2016-08-31 17:00:02 zhangym

golang时间格式化

golang中如何输入当前时间 package main import( "fmt" "time" ) func main(){ t := time.Now() y,m,d := t.Date() today := time.Now().Format("2006-01-02") datetime := time.Now().Format("2006-01-02 15:04:05")//后面的参数是固定的 否则将无法正常输出 fmt.Println("time is : ",t ) fmt.Println("y m d is : ",y,m,d ) fmt.Println("now is :",today) fmt.Println("now is :",datetime) ...阅读全文

博文 2015-06-17 20:04:06 herohenu

go语法:channel作为参数的传递

在声明channel对象的参数时,一定要写成 c chan xxx,xxx代表channel的类型。例如 package main import ( "fmt" //"time" ) func main() { c := make(chan bool, 1) for i := 0; i < 10; i++ { go Go(c, i) } <-c } func Go(c chan bool, index int) { sum := 0 for i := 0; i < 1000000; i++ { sum += i } fmt.Println(sum) c <- true } 这里的chan C变量是bool类型,所以需要在声明方法的参数时,也要加上这个bool类型。 这点跟java有所不同,刚...阅读全文

博文 2015-06-18 09:03:53 x369201170

golang启动一个简单的http服务

自http://www.01happy.com/golang-simple-http-server/ golang中开发http服务,可以用net/http包提供的功能。net/http包提供了非常全的功能,并且启动的http服务也非常稳定和高效,完全可以用在生产环境中。 package main import ( "fmt" "log" "net/http" ) // w表示response对象,返回给客户端的内容都在对象里处理 // r表示客户端请求对象,包含了请求头,请求参数等等 func index(w http.ResponseWriter, r *http.Request) { // 往w里写入内容,就会在浏览器里输出 fmt.Fprintf(w, "Hello golang h...阅读全文

博文 2018-11-26 17:34:43 石见君

golang中string与byte的转换

某些场景下,函数参数需要byte类型的,已知参数是string类型的,那怎么由string类型转换成byte类型呢,比如:bufio.ReadSlice的第二个参数就是byte类型的:func(b *Reader)ReadSlice(delimbyte) (line []byte, errerror)可以通过两个方法由string得到byte,第一个是: 注意到,这里的G既不是""双引号又不是``这种go里面字符串引起来的,而是普通的单引号。第二种方法是: 这种曲折的方法,先转成[]byte,然后再取第一个...阅读全文

博文 2017-08-17 12:05:06 舒小贱

Go语言里边的字符串和数组

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; go语言里边的字符串处理和PHP还有java 的处理是不一样的,首先申明字符串和修改字符串 [php] package main import "fmt" var name string //申明一个字符串 var emptyname string = "" //申明一个空字符串 func main() { //申明多个字符串并且赋值 a, b, v := "hello", "word", "widuu" fmt.Println(a, b, v) //转换字符串的内容,先转换a的类型为[]byte c := []byte(a) //赋值 c[0] = ‘n’ //在转换成字符串类型,其实我们发...阅读全文

golang interface赋值

说说我对golang的interface赋值的理解。 先说golang中类型方法定义。 如 type bird struct { id int } func (b bird) fly() { fmt.Println("fly") } func (b *bird) eat() { b.id++ } 中bird类型有两个方法,fly和eat。 两个方法是有区别的,fly由(b bird)绑定,eat由(b *bird)绑定。 在应用中,(b *bird)绑定方式可以修改对象中的参数,而(b bird)方式则不可以。 再来说接口的赋值。接口赋值可以分为对象对接口的赋值和接口对接口的赋值。 对象对接口的赋值需要对象完全实现接口定义的所有方法。 如定义如下接口 type animal interfac...阅读全文

博文 2015-06-17 20:02:23 iwbno1

golang http请求数据怎么传body体参数

```res, err := http.PostForm("https://127.0.0.1:8443/api/test.action", req.Form)``` 通过http.PostForm可以请求到地址,但是参数不是以body体传过去,是还要设置什么吗?学生党不太了解... ``` {"baseId":["16149460-5984-4ea0-9308-835b804d063f"],"datetime":["20170401"],"userId":["51"]} {"code":1,"data":"parse param failed","errorMsg":"网络异常"} ``` ***req.Form***中有这些参数,接口是只接收body体的请求,如果bo...阅读全文

python,java,go语言之间的区别!

除去Java Python Go这三种语言底层以及语法的不同,这里以个人的理解只说说其面向对象方面的思想。 一个简单的示例: 描述人,李雷,韩梅梅,他俩都是好学生。 将用 javapythongo 这三种语言分别简单的描述。 Java 思想 人,是抽象的概念,可以洗衣做饭的灵长目物种,没法特指一样具体的东西,但它也有一些如性别、撒尿这类的属性和功能。 /** * 抽象出来的人 */ abstract class Human { protected String sex; protected String name; public void setSex(String sex) { this.sex = sex; } public String getSex() { return this.s...阅读全文

博文 2014-10-24 09:00:00 rubbishcan

Go语言的参数解析(flag)

flag参数解析,我原以为会了,结果今天发现,原来比我印象中还强大些. 索性记一下. 第一个例子是常见用法: //Flag例1 //author:Xiong Chuan Liang //date:2015-4-10 package main import ( "flag" "fmt" "os" ) var ( levelFlag = flag.Int("level", 0, "级别") bnFlag int ) func init() { flag.IntVar(&bnFlag, "bn", 3, "份数") } func main() { flag.Parse() count := len(os.Args) fmt.Println("参数总个数:",count) fmt.Println("...阅读全文

博文 2015-04-14 19:00:10 xcltapestry

Go语言的传参和传引用

传参和传引用的问题 很多非官方的文档和教材(包括一些已经出版的图书), 对Go语言的传参和引用的讲解 都有很多问题. 导致众多Go语言新手对Go的函数参数传参有很多误解. 而传参和传引用是编程语言的根本问题, 如果这个问题理解错误可能会导致很多问题. 传slice不是传引用! 首先, Go语言的函数调用参数全部是传值的, 包括 slice/map/chan 在内所有类型, 没有传引用的说法. 具体请看Go语言的规范: After they are evaluated, the parameters of the call are passed by value to the function and the called function begins execution. from: ht...阅读全文

博文 2015-09-14 14:00:31 future_challenger

go语言函数参数与返回值示例,数组的简单应用

go语言函数参数与返回值示例,数组的简单应用 package main import "fmt" func main() { string1 ,string2 :=test_various_values(30,58) fmt.Println("参数1 ",string1) fmt.Println("参数2 ",string2) fmt.Println("------------------------------------------------------------------") v1 ,v2 :=test_various_values2(46,"huangmao") fmt.Println("--v1==== ",v1) fmt.Println("---v2 == ",v2) fm...阅读全文

博文 2016-10-26 17:00:01 qq_26337701

探究golang接口

今天看了《Go 语言中的方法,接口和嵌入类型》所以想对比以前对C/C++相关知识进一步理解golang的接口、指针、参数传递。 接口 根据《Go 语言中的方法,接口和嵌入类型》的描述可以看出,接口去调用结构体的方法时需要针对接受者的不同去区分,即: 接收者是指针*T时,接口实例必须是指针 接收者是值 T时,接口实力可以是指针也可以是值 接口的定义和类型转换与接收者的定义是关联的 文章中的示例是通过接口作为函数参数的方式展现的,这里我直接使用变量来进行实验: package main import "fmt" type Type struct { name string } type PType struct { name string } type Inter iInterface { po...阅读全文

博文 2015-03-13 16:00:02 cnsword

golang中的函数参数值传递和引用传递

在golang中函数的参数默认为 **按值传递**,即在函数内部修改传入参数的值是函数外部传入值的 **拷贝**。 如果想要使用引用传递,需要将传入的参数设置为 **指针类型**。 如果传入的参数数据很大,建议使用指针类型,减少内存因拷贝参数而占用。 ``` type person struct{ Name string Age int } func SetName(p person, name string){ p.Name = name } func SetNameByPointer(p *person, name string){ p.Name = name } func(p person) SetPersonName(name string){ p.Name = name } fun...阅读全文

博文 2018-11-06 17:54:02 lijingtian

golang中的hmac验证应该怎样写

python是这样的 一般hmac验证需要两个参数,一个密钥和一个加密串(既接口参数值的拼接) import hmac hmacStr=hmac.new('密钥') hmacStr.update('加密串') hmacStr=hmacStr.hexdigest() 或者是 hmac.new(__api_secret, params, digestmod=hashlib.sha512).hexdigest() 在golang中应该怎样写?我到处都找不到例子和相关的用...阅读全文

Golang——net/http

构建一个web 在浏览器输入http://localhost:8080 import ( "net/http" "fmt" "log" ) func sayhelloGolang(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数,默认是不会解析的 fmt.Println("path", r.URL.Path) w.Write([]byte("Hello Golang")) } func main() { http.HandleFunc("/", sayhelloGolang) //设置访问的路由 err := http.ListenAndServe(":8080", nil) //设置监听的端口 if err != ...阅读全文

博文 2018-08-23 21:34:58 巴翔

Golang通过HTTP Response获取Zip文件

本来计划至少一周总结一次学到的东西,不过好像没有实现啊 一看时间都4月1号了,一个月了,总该写点啥 最近运气不好,出了很多事情,虽然都是不足为外人道的东西,但确实影响心情,希望大家每天都能开开心心的 今天写一下前几天遇到的一个需求:通过一个URL获取用户信息的zip文件 不涉及过多业务内容的话,就是要写一个小Demo,通过一个给定URL,获取一个zip文件 实现一个极简单的URL处理路由 既然是写Demo,那么肯定路由就Golang最简单的ListenAndServe就好...阅读全文

博文 2017-04-03 01:47:45 Kenshinsyrup

golang事件机制

源码地址 https://github.com/slclub/goevents 概述 事件package。 我们可以自由灵活的使用事件,支持串行事件,并行事件; 且可以将串行事件 按定义的模块去触发. 事件函数的自定义参数无限制,但没有返回值。具体执行事件灵活自定义,用On 类函数接口注入到goevents。 可以灵活的绑定事件队列的参数。针对事件去绑定,或者,统一触发事件之前去绑定,或者混合着使用。单个绑定的优先级会更高一些 API English Doc 获取代码到本地 go get github.com/slclub/goevents 使用案例 串行化事件使用案例 ```go import "github.com/slclub/go...阅读全文

go语言:函数参数传递详解

参数传递是指在程序的传递过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。比较常见的参数传递有:值传递,按地址传递参数或者按数组传递参数。 1、常规传递 使用普通变量作为函数参数的时候,在传递参数时只是对变量值得拷贝,即将实参的值复制给变参,当函数对变参进行处理时,并不会影响原来实参的值。 例如: package main import ( "fmt" ) func swap(a int, b int) { var temp int temp = a a = b b = temp } func main() { x := 5 y := 10 swap(x, y) fmt.Print(x, y) } 输出结果:5 10 传递给swap的是x,y的值得拷贝...阅读全文

博文 2016-07-03 02:00:01 chase-wind

golang编译时的参数传递(gcflags, ldflags)

go build 可以用-gcflags给go编译器传入参数,也就是传给go tool compile的参数,因此可以用go tool compile --help查看所有可用的参数。其中-m可以检查代码的编译优化情况,包括逃逸情况和函数是否内联。如果只在编译特定包时需要传递参数,格式应遵守“包名=参数列表”,如go build -gcflags -gcflags='log=-N -l' main.gogo build用-ldflags给go链接器传入参数,实际是给go tool link的参数,可以用go tool link --help查看可用的参数。常用-X来指定版本号等编译时才决定的参数值。例如代码中定义var buildVer string,然后在编译时用go build -ldf...阅读全文

博文 2019-10-12 11:32:47 aside section ._1OhGeD

Golang 之ShouldBind与binding验证学习

package main // ShouldBind学习,验证和绑定 import ( "github.com/gin-gonic/gin" "time" ) // 多个用,隔开,并列用| type Boy struct{ Name string `form:"name" binding:"required"` Age int `form:"age" binding:"required,min=0,max=120"` Address string `form:"address"` Brithday time.Time `form:"brithday" time_format:"2006-01-02"` } func handleBoy(c *gin.Context) { var boy Bo...阅读全文

博文 2019-10-30 23:32:57 aside section._1OhGeD

golang实现任意日期格式转换标准日期格式

*Fork了别人一个Repository 日期解析* 这个package的功能很简单就是将一个未知的日期格式转化为标准的日期格式,日常生活中可以作为日期的数据清洗,接下来将开发以此Repository为基础,支持可配置的自动识别日期格式的功能,Repository正在开发中,有兴趣的小伙伴可以随时提PR,共同完善,共同学习。 Repository地址: noaway/dateparse ( http://link.zhihu.com/?target=https%3A//github.com/noaway/dateparse ) 具体的使用方式如下: package main import ( "flag" "fmt" "time" "github.com/apcera/termtables"...阅读全文

博文 2017-11-23 09:56:16 诺唯

golang flag包

go flag 包用来解析命令行参数,通过一个简单的例子来了解下 package main import ( "flag" "fmt" ) func main() { //参数1:命令行传递参数的名称 参数2:默认值 参数3:参数的说明 username := flag.String("name", "", "Input your name") //注意 username 是string 的指针 type: *string // 在例如: // var ip = flag.Int("flagname", 1234, "help message for flagname") //ip 的类型是: *int flag.Parse() fmt.Println("Hello,", *username...阅读全文

博文 2016-01-15 03:00:00 davin

GoLang处理URL提取Get参数

图片来源于网络 我们在项目里面大部分都是直接使用封装好的网络库,需要获取请求里面的参数直接调他们的API就可以了。 今天我突发奇想,他们是怎么做到的,自己也尝试着写了一段代码来提取GET里面的参数,班门弄斧了。 这是我的代码片段,一起交交流下: urlStr := "/index/show?name=zs&age=12" //查找字符串的位置 questionIndex := strings.Index(urlStr, "?") //判断是否存在/符号 cutIndex := strings.Index(urlStr, "/") //打散成数组 rs := []rune(urlStr) //用于存储请求的地址切割 requestSlice := make([]string, 0, 0) //...阅读全文

博文 2018-10-09 13:34:40 谦益同学

阅读 Beego - 路由机制 (1)

beego 是国产著名的 Golang Web 框架,基于 MVC 模型,支持自动路由和Restful,并且有Config,Cache,Session,Orm等模块可以直接使用。MVC中最重要的就是路由。它实现从Web请求到对应控制器方法的映射。一般而言,路由包括三个部分:添加规则,解析规则和匹配规则。正好我分为三个部分,来分析beego的路由实现机制。 这一篇是添加路由规则的分析,从哪里入手呢?Beego有个开源论坛系统 Wetalk,也就是 golanghome 的实现,从他的路由开始看起。 Wetalk的路由设置很长,有很多的控制器需要注册。我从一段简单的看起,wetalk.go#L79: posts := new(post.PostListRouter) beego.Router("...阅读全文

博文 2015-05-13 10:06:49 傅小黑

Go命令行参数解析flag包

go语言提供的flag包可以解析命令行的参数,代码: package main import ( "flag" "fmt" ) func main() { //第一个参数,为参数名称,第二个参数为默认值,第三个参数是说明 username := flag.String("name", "", "Input your username") flag.Parse() fmt.Println("Hello, ", *username) } 编译: go build flag.go 运行: ./flag -name=world 输出: Hello, world 如果不输入name参数: ./flag 则输出: Hello...阅读全文

博文 2015-06-02 03:00:16 baiyuxiong

time.Unix(sed, nsed)

# time.Unix(sed, nsed) 最近看到代码中有一行这个, 单纯看英文并不是太理解, 然后这里找了一下,没有相关的解释.其实是一个很简单的函数. Unix()返回一个Time类型, 然后这个时间是UTC时间加上你的参数时间 ``` // ex: t := time.Unix(1, 0) fmt.Println(t) // 此处的时间就是UTC时间,加一秒钟 ``...阅读全文

博文 2019-03-01 11:16:02 NextLeaves

GoLang中如何使用多参数属性传参

我们常常因为传入的参数不确定而头疼不已,golang 为我们提供了接入多值参数用于解决这个问题。但是一般我们直接写已知代码即所有的值都知道一个一个塞进去就好了,但是绝大部分我们是得到用户的大量输入想通过循环传入,但是这样发现无法使用这个多值参数的功能。其实底层实现将多个参数视为传入的一个不定长数组。那么我们就有想法了:既然底层使用数组,那我们传入数组是否可以,结论是不可以的,或者这样说比较合理:数组不能直接传入,需要辅助多参数标识来指明,具体让我们看以下一个简单的测试: func TestMultiParam(t *testing.T) { valueArray := []string{"1", "2", "3", "4", "5"} result := valueArray[0: 3] t...阅读全文

博文 2017-09-25 16:30:00 grimm

Golang 处理命令行启动参数

最近要做Apache Thrift相关的项目。大概看了一下,觉得不难。Thrift目前已经至此和Go语言了。照着官方提供的一个例子在学。周五搞了一上午,终于编译通过了。下午去读例子源码,发现一个从来没见过的包——flag。 不管是C开发还是Java,都接触过命令行开发。像大Java的main函数public static void main(String []args)直接参数里面就能读取到命令行启动参数。而Go语言的主函数是func main()果断啥也没,需要用这个包。 虽然Go不像大Java,在主函数里面直接就能获取到命令行参数,但是Go通过flag包获取到的参数类型,不像Java那样,只能是String类型。 再获取之前,需要自定义要获取的参数名称、参数默认值、参数使用方法,还有参数...阅读全文

博文 2017-02-09 12:25:00 Bryce

Golang 多变参数

// code by shaoyongyang package main import ( "fmt" ) var t int = 1 var fslice []int func main() { doSomeThing(1, 2, 3, 4) return } func doSomeThing(arg ...int) { fmt.Println(arg) // as a slice fslice := []int(arg) fmt.Println(fslice[2]) } var fslice[] int 在这里声明了一个类似“动态数组”的变量。 没有长度的限制 可变参数的类型是int。 只能传递可转换的数据。 比如我可以传递doSomeThing(1, 'A', 3, 4) 'A'的AS...阅读全文

博文 2015-01-31 19:00:01 未来还没来

golang获取请求参数

package main import ( "net/http" "io/ioutil" "fmt" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){ buf := make([]byte, 1024) n, _ := r.Body.Read(buf) fmt.Println(string(buf[0:n])) // 或者 body, _ := ioutil.ReadAll(r.Body) fmt.Println(string(body)) fmt.Fprintf(w, "Hello golang!") }...阅读全文

博文 2019-04-30 09:34:43 甲乙丙丁0086

安装google Tesseract,准备用golang写个图像识别的项目

环境: OS X EI Capitian Version 10.11.6 安装步骤参照: https://github.com/GeertJohan/go.tesseract/tree/v1 $ brew install leptonica $ brew install tesseract $ export CGO_LDFLAGS="-L/usr/local/Cellar/leptonica/1.72/lib -L/usr/local/Cellar/tesseract/3.04.01_1/lib" $ export CGO_CFLAGS="-I/usr/local/Cellar/leptonica/1.72/include -I/usr/local/Cellar/tesseract/3.04...阅读全文

博文 2016-09-12 12:00:42 有个地方叫作遥远

Golang用body来get或post数据

用body来处理参数,能处理多层结构化参数,url不能传送多层结构数据 // 基础方法,这里多用于访问webapi,配合上json转换。此方法可以运行但是不算完善。 func httpDo(method string, url string, msg string) { fmt.Println("----", url, "----") client := &http.Client{} body := bytes.NewBuffer([]byte(msg)) req, err := http.NewRequest(method, url, body) if err != nil { // handle error } req.Header.Set("Content-Type", "applic...阅读全文

博文 2018-05-22 11:33:08 捍卫机密

简洁高效的 Go web 框架Faygo

Faygo以全新的架构实现,它面向Handler接口开发,是支持智能参数映射与校验、支持自动化API文档的Go语言web框架。 v1.0 Go Version ≥1.8 方式一 源码下载 方式二 部署工具 ([Go to fay](https://github.com/henrylee2cn/fay)) 面向Handler接口开发(func or struct),中间件与操作完全等同可任意拼接路由操作链 支持用struct Handler在Tag标签定义请求参数信息及其校验信息 支持自动构建API文档(swagger2.0) 支持多种网络类型: HTTP HTTPS/HTTP2(TLS) HTTPS/HTTP2(Let's Encrypt TLS) HTTPS...阅读全文