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

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

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 ____追梦人

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

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

探究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执行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 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

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中的hmac验证应该怎样写

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

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

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

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 多变参数

// 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 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...阅读全文

ionic 路由使用$state.go父页面向子页面传递参数

1.父页面的路由配置 .state('tab.article', { url: '/article', nativeTransitions: { type: "fade" }, views: { 'tab-article': { templateUrl: 'templates/article/article.html', controller: 'ArticleController' } } })2.子页面的路由配置 .state('tab.article_details', { url: '/article_details?articleDetailsUrl', views: { 'tab-article': { templateUrl: 'templates/article/articl...阅读全文

博文 2016-09-06 17:00:07 hunannanhu

go gdb调试 参数设置

编译时,如果编译的结果需要gdb调试则使用参数-gcflags “-N -l”,这样可以忽略Go内部做的一些优化,聚合变量和函数等优化. go build -gcflags "-N -l",但是一定要注意是不是小写的i,也不是大写的I,是小写的L,不然会出现奇怪的错误。 如果编译的结果需要发布.则使用-ldflags “-s”,可以去掉调试信息,减小大约一半的大小 go build -ldflags "-s" 删除调试符号:go build -ldflags “-s -w” -s: 去掉符号信息。-w: 去掉DWARF调试信息。 关闭内联优化:go build -gcflags “-N -l...阅读全文

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时间格式化

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

golang内置数据类型作为函数参数

先上结论 golang的所有内置类型作为函数参数传递都是传值的方式(没有传递引用一说),需要注意的是:数组、slice和map作为函数参数时也是传值,但是如果对结构内元素进行的修改,修改的是原数据。如果是对其进行整体赋值,则不会修改原数据,相当于拷贝出一个新的临时变量。要想无论什么情况都修改原数据,可以通过传递指针参数实现。 来段实例代码 1 package main 2 3 import ( 4 "bytes" 5 "fmt" 6 "strings" 7 ) 8 9 func f_1(a int) { 10 a = 2 11 } 12 13 func f_1_1(a *int) { 14 *a = 2 15 } 16 17 func f_2(s string) { 18 s = "cba"...阅读全文

博文 2016-06-29 02:00:01 borey

GO语言练习:不定参数函数

1、代码 2、运行 1、代码 package main import "fmt" func MyPrintf(args ...interface{}){ for _, arg := range args { switch arg.(type) { case int : fmt.Println("\"", arg, "\"", "is an int value.") case string : fmt.Println("\"", arg, "\"", "is a string value.") case int64 : fmt.Println("\"", arg, "\"", "is an int64 value.") default : fmt.Println("\"", arg, "\""...阅读全文

博文 2015-07-05 03:00:01 fengbohello

golang – fmt 格式化参数

文 基本 %v the value in a default format when printing structs, the plus flag (%+v) adds field names %#v a Go-syntax representation of the value %T a Go-syntax representation of the type of the value %% a literal percent sign; consumes no value The default format for %v is: bool: %t int, int8 etc.: %d uint, uint8 etc.: %d, %#x if printed with %#v floa...阅读全文

博文 2017-04-30 12:00:24 中柠檬

问个os.exec 执行windows 下命令的问题

我在windows 目录下面有个cwRsync_5.4.1 的包 path="/cygdrive/c/null/ /cygdrive/c/data/20140101" cmd := exec.Command("cmd", "/C", "C:\\cwRsync_5.4.1\\rsync.exe", "-av", "--delete", path) cmd := exec.Command("C:\\cwRsync_5.4.1\\rsync.exe", "-av", "--delete", path) 都执行无效果。 我拿cmd.Args() 的 里面的参数,在windows 下执行是好的。 另外我也试过了cmd.Start() cmd.Run() 都不可以。。。。...阅读全文

简洁高效的 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...阅读全文

Go语言入门(四)——不定参数

不定参数类型 不定参数是指函数传入的参数个数为不定数量。 package main import ( "fmt" ) /* 不定参数函数 */ func Add(a int, args ...int) (result int) { result += a for _, arg := range args { result += arg } return } func main() { fmt.Println(Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) } 代码中的args是一个数组切片,而且只能放在参数中的最后面。 不定参数的传递 func SetData(args ...int) (result int) { //不定参数的传递 return Add(1, ar...阅读全文

博文 2016-02-16 10:00:00 jaykiller123

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中如何使用多参数属性传参

我们常常因为传入的参数不确定而头疼不已,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学习的点点滴滴:指针,地址,形参,实参

学习Go语言的过程中,会发现它的指针,地址,还有函数参数跟平常我们理解的不太一样. 上代码: package main //学习指针用法 import ( "fmt" ) func main() { var i int; // i 的类型是int型 var p *int; // p 的类型是[int型的指针] i = 1; // i 的值为 1; p = &i; // p 的值为 [i的地址] fmt.Printf("i=%d;p=%d;*p=%d\n",i,p,*p); *p = 2; // *p 的值为 [[i的地址]的指针](其实就是i嘛),这行代码也就等价于 i = 2 fmt.Printf("i=%d;p=%d;*p=%d\n",i,p,*p); i = 3; // 验证我的想法 ...阅读全文

博文 2014-10-04 19:27:24 亓斌哥哥

golang不定参数

1.有时候想一个函数中传入的参数很可能是不定的,除了可以使用: func funcname(...interface{}){ } 2.也可以将许多参数放进一个数组中,然后作为参数传入函数(或许会觉得这样有点多此一举,但是很可能存在历史遗留问题): func funcname(args []interface{}){ fmt.Print(args...) //args...是将一个数组按顺序变成不定参数传入,这个还真的挺好用的 } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2015-11-30 15:00:42 vrinux

golang中string与byte的转换

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

函数参数的 splats 写法无法识别?

新手表示正在看的 PDF https://github.com/mikespook/Learning-Go-zh-cn 里边有 splats... CofeeScript 里的叫法,, 顺带问下 Golang 里这叫啥? 问题是我用了这样的语法, 结果编译过程报错.. 请问这语法在新的 Golang 里是怎么? 我的环境是 ``` ➤➤ uname -a Darwin chentekiMacBook-Air.local 12.4.1 Darwin Kernel Version 12.4.1: Tue May 21 17:04:50 PDT 2013; root:xnu-2050.40.51~1/RELEASE_X86_64 x86_64 ➤➤ go version ...阅读全文

golang rpc

rpc server端(golang版本): package main import ( "errors" "fmt" "net" "net/rpc" "net/rpc/jsonrpc" ) const ( URL = "127.0.0.1:5001" ) type Args struct { A, B int } type Arith int func (t *Arith) Add(args []Args, reply *int) error { for i := 0; i < len(args); i++ { *reply += args[i].A *reply += args[i].B } return nil } func main() { arith := new(Arith) r...阅读全文

博文 2015-10-26 18:00:11 webyh

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())() }...阅读全文

博文 2014-10-06 09:59:59 eclipser1987

golang学习的点点滴滴:flag包解析命令行参数

import ( "fmt" "flag" ) func main() { var in *string = flag.String("in", "infile", "input infile...") var out *string = flag.String("out", "outfile", "input outfile...") var op *string = flag.String("op", "op..", "ops...") // 命令行使用 xxx.exe -in thisisin -out thisisout -op thisisops flag.Parse() // 解析 if nil != in { fmt.Println("inFile : ", *in, " ou...阅读全文

博文 2014-10-04 19:27:45 亓斌哥哥

C/Golang中的值传递和指针传递

-------------------------golang---------------------------------------------- package main import "fmt" func A(m int, n []int) { m = 100 n[0] = 99 fmt.Printf("After : &m=%p,&n=%p,n=%p\n", &m, &n, n) fmt.Printf(" m=%d,n=%v\n", m, n) } func main() { m := 300 n := []int{1, 2, 3} fmt.Printf("-----------origin--------------------\n") fmt.Printf("Befter ...阅读全文

golang的flag包

package main import ( "flag" "fmt" ) var ( root = flag.String("root", "/var/lib/docker/fakevol", "fake volumes root directory") ) func main() { wordPtr := flag.String("word", "foo", "a string") numbPtr := flag.Int("numb", 42, "an int") boolPtr := flag.Bool("fork", false, "a bool") var svar string flag.StringVar(&svar, "svar", "bar", "a string var")...阅读全文

博文 2015-08-20 14:00:01 webyh

golang面向对象

golang可以实现面向对象,C++能做的,golang基本也可以做。 1.简单继承 golang用组合来实现继承,父类实例的作为子类的匿名成员即可。 继承了父类的成员变量和成员方法。 同名的成员方法,无论完整函数签名是否相同,父类方法均被隐藏。 同名的变量,子类优先,父类的必须加上父类类型才能访问。 e.Human.SayHi() 在正常的设计中,不要出现同名的情况。 2.多重继承。 组合多个基类即可 3.多态行为 用接口实现 package main import ( "fmt" ) // abstract base type IA interface { Kaka()int } // child a type A struct{ } func (a *A)Kaka()int{ retu...阅读全文

博文 2015-06-17 20:02:15 fall221

golang http测试 no-cache 对性能的影响

做了下go和java的http性能的简单比较服务端直接输出字符串使用JMeterwindows下 2000的并发,测试结果很出乎意料,go不会这么差吧研究了半小时,原因如下servlet添加里加了 response.setHeader("Pragma", "no-cache"); go的测试代码里没有设置该参数设置后重新跑测试o...阅读全文

博文 2014-10-04 19:27:38 咖啡伴侣

golang传参方式

传参和传引用的问题 很多非官方的文档和教材(包括一些已经出版的图书), 对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...阅读全文

博文 2016-08-31 19:00:00 dasn

[mysql]能否动态修改当次mysql连接的Config参数

看了/src/database/sql 与 /go-sql-driver/mysql/ , 没找到能用的方法 目前需求的逻辑: 建立1次mysql connection, 若超时A秒返回, 使用timeout参数 分别执行 insert, select, delete query, `总超时`B秒返回, 使用readTimeout参数 (此处已修改/src/database/sql) 此处的`总超时`没找到对应能实现功能的方法, 目前看了一遍代码, 只能做到如下折中逻辑 connect db 超时`A`秒返回, insert 超时`B`秒返回用时B1, 总用时`A1` connect db 超时`A-A1`秒返回, select 超...阅读全文

Go语言的传参和传引用

目录[-] 传参和传引用的问题 传slice不是传引用! 什么叫传引用? 为什么传slice不是传引用? 为什么很多人误以为slice是传引用呢? 传指针和传引用是等价的吗? 所有类型的函数参数都是传值的! 那Go语言有传引用的说法吗? 什么是引用类型, 和指针有何区别/联系 ? 总结 传参和传引用的问题 很多非官方的文档和教材(包括一些已经出版的图书), 对Go语言的传参和引用的讲解 都有很多问题. 导致众多Go语言新手对Go的函数参数传参有很多误解. 而传参和传引用是编程语言的根本问题, 如果这个问题理解错误可能会导致很多问题. 传slice不是传引用! 首先, Go语言的函数调用参数全部是传值的, 包括 slice/map/chan 在内所有类型, 没有传引用的说法. 具体请看Go语言...阅读全文

博文 2015-09-15 03:00:01 sunshine-anycall

golang 进程出现too many open files的排查过程

1. 现象 服务的cpu跑满(golang实现), 并大量报too many open files错误.服务使用systemd来运行,部署在阿里ecs上. 2.分析 从日志来看,cpu的上升主要为到达文件数限制引起的,但之前已经更改过系统的文件数及所有用户的文件数,按道理是不应该出现这个问题的,后来查阅资料发现,文件数可以从三个维度限制分别为操作系统限制,用户态限制,以及进程限制,对于这三个维度选取最小值生效.于是对系统进行分析. 首先查看当前打开文件数, 进程占用的文件数并不多. lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 然后获取系统级文件数限制 输入命令cat /etc/sysctl.conf得到fs.file-max = 1...阅读全文

博文 2016-10-11 09:00:11 u010511236

我希望的Golang的feature

如果有下面的功能,Go可以让程序员更高效。 1. 数学类型的自动转换。现在做个整数跟浮点数的计算也要手动转类型。据说是为了更安全和可预测的代码。但是其他主流语言都支持自动转,大家早就习惯了。需要考虑类型安全的地方,该考虑的人自然会去考虑。 2. Polymorphism的支持。interface对多态的支持还是比较有限。down casting做不了有的时候还是不大方便。比如下面这段代码就编不过 type Base struct { xxxx } type Derived struct { Base } func main() { v1 := &Drived{} var v2 *Base v2 = v1 //编译不过 v2 = *Base(v1) //也不行 } 3. 更方便的数组的操作比如...阅读全文

博文 2015-12-28 00:00:00 kefeng_chen

beego.InsertFilter过滤器

beego.InsertFilter过滤器是为某些router提供过滤功能,可以设置在某个路由访问时进行额外的操作。通过参数设置可以设置过滤器执行的时刻。 如下所示beego.InsertFilter有一下几个参数: InsertFilter(pattern string, pos int, filter FilterFunc, params …bool) pattern:路由规则,过滤器作用的路由 pos : 过滤器执行的时刻,有以下5种 beego.BeforeStatic beego.BeforeRouter 访问路由之前 beego.BeforeExec 访问路由之后执行controller之前 beego.AfterExec 执行controller之后调用 beego.Finis...阅读全文

博文 2018-09-11 10:13:11 JimPang