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

struct指针用完后如何释放

下面程序,先用InitReqData函数初始化一个map(map的value是一个struct指针),然后用freeReqData函数回收map中指定key的内容。 freeReqData函数应该怎么写,才既能把指定key从map中去掉,又保证相应的struct指针的释放,避免内存泄露? ``` package main type ReqData struct { Logid string } var( ArrReqData = make(map[string]*ReqData) ) func InitReqData(key string, logid string){ ArrReqData[key] = &ReqDat...阅读全文

golang的apns证书文件转换(P12 to Pem)

golang 不支持p12解析,所以需要转换成pem 网上有一些,但都不能实现自动转换(非交互模式)。以下是非交互模式的转换: //生成临时文件cert.pem,注意passin 和 passout 选项 openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12 -passin pass:P12_PASS //生成临时文件key.pem openssl pkcs12 -nocerts -out key.pem -in cert.p12 -passin pass:P12_PASS -passout pass:TMP_PASS //去掉key.pem的密码 openssl rsa -in key.pem -out key.unencry...阅读全文

博文 2015-12-10 22:00:01 linsanhua

golang-利用反射给结构体赋值

由于想给一个结构体的部分成员赋值,但是有不知道具体名字,故将tag的json名字作为索引,按照json名字来一一赋值 //将结构体里的成员按照json名字来赋值 func SetStructFieldByJsonName(ptr interface{}, fields map[string]interface{}) { logger.Debug("fields:", fields) v := reflect.ValueOf(ptr).Elem() // the struct variable for i := 0; i < v.NumField(); i++ { fieldInfo := v.Type().Field(i) // a reflect.StructField tag := fi...阅读全文

博文 2017-11-06 01:00:01 fwdqxl

golang解析xml,去掉重复项

package main import ( "encoding/xml" "fmt" "mahonia" "os" "strconv" "text/template" ) type Attribute struct { Name string Value string Type string } type Token struct { Name string IsArray string Num int Attributes map[string]*Attribute Tokens map[string]*Token } type Result struct { Root Token } var result = Result{} var g_tabNum = 0 var g_classVe...阅读全文

博文 2015-12-09 13:00:06 esrrhs

Notepad++来运行golang

在run命令里输入:cmd /k go run "$(FULL_CURRENT_PATH)" & PAUSE & EXIT 保存为goRun,就可以了,配置从go目录中的misc找到对应的xml导入即可,那个userdefine.xml要去掉最开头和结束的注释,后把go.xml考到notepad++的plugins的api目录下 具体: 1.如果notepad++安装目录有userdefine.xml,就不go的userdefine.xml的内容添加到目录下的userdefine.xml里面,结构go的都做好了,把没注释的拷贝到对应的结构去就行了 2、同样functionList.xm...阅读全文

博文 2015-06-17 20:18:53 icyday

go语言reversevowelsofastring

Go语言ReverseVowelsofaString 主要是判断是不是元音字符,没啥难度,记得实际写的时候要去掉魔鬼数字 package main import ( "fmt" ) //注意考虑大小写 func isVowel(vowel rune) bool { if vowel == 97 || vowel == 97-32 { return true } if vowel == 101 || vowel == 101-32 { return true } if vowel == 105 || vowel == 105-32 { return true } if vowel == 111 || vowel == 111-32 { return true } if vowel == 117...阅读全文

博文 2016-07-18 15:00:45 qq_15437667

关于if data != nil && len(data) != n { }的思考

1.我经常看到在项目里面使用了下面这些代码 ```go if data != nil && len(data) != 0 { do xxx } ``` 我就在思考,为啥要多写一个判断data != nil 因此我测试了下面的代码,发现完全可以去掉第一个判断 因为len(nil)==0,因此第一个判断去掉没有任何问题的 ```go package main import "fmt" func main() { var data1 []interface{} = nil data2 := []interface{}{} data3 := make([]interface{}, 0, 8) fmt.Println(len(...阅读全文

去掉slice中重复的数据类型

##去重 去掉slice中重复的数据 ``` package main import ( "fmt" ) func main() { orderIds := make([]int64, 0) orderIds = []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 5} // 最直接的方式 slice := make([]interface{}, len(orderIds)) for i := range orderIds { slice[i] = orderIds[i] } slice = removeDuplicate(slice) fmt.Println(slice) } // 去掉slice中重复的元素 func removeDuplicate(slic...阅读全文

博文 2019-01-04 11:44:03 jh5201314

在图片上绘制文字,设置了文字的颜色,为什么文字外边有轮廓线,该如何去掉?另外如何设置字体的粗细

**在图片上绘制文字,设置了文字的颜色,为什么文字外边有轮廓线,该如何去掉?另外如何设置字体的粗细** ``` c.SetFontSize(52) c.SetSrc(image.NewUniform(color.RGBA{37,37,37, 1})) pt3 := freetype.Pt(175, 640) fmt.Printf("标题%v\n", imgItem.Title) fmt.Printf("原价ZkFinalPrice=%v,优惠券价格CouponAmount=%v,成交量Volume=%v\n", imgItem.ZkFinalPrice, imgItem.CouponAmount, imgItem.Volume) zkFinalPriice, _ := strconv.Par...阅读全文

博文 2019-09-03 10:45:00 heshimang

类型声明对[]byte似乎不需要显式强制类型转换,很奇怪哦~

```go package main import "fmt" type B []byte type S string func main() { var b = B([]byte("hello")) P(b) Pr([]byte("hello")) //var s = S("world") //SS(s) //SSr(string("world")) } func P(b []byte){ fmt.Println(b) } func SS(s string){ fmt.Println(s) } func SSr(s S){ fmt.Println(s) } func Pr(b B){ fmt.Printl...阅读全文

求助 mgo 插入操作时如何去掉“_id” 前面的(objectid)直接显示_id 值如下?

**1、图一是错误的格式** ![图片1.png](https://static.studygolang.com/180914/29f623526dad2b23dd8833e5ee882e8a.png) **2、图二是正确的** ![图片2.png](https://static.studygolang.com/180914/0bc4b027c17ae0b89c1241a45101b6be.png) 图一使用的是insert(&data)直接插入,图二怎么实现!...阅读全文

mux使用报错

我写了一个demo, 访问 ``` localhost:3005/host ``` 但是报404,为啥啊,但是去掉Host("localhost")就正确了。 ``` package main import ( "fmt" "log" "net/http" "github.com/gorilla/mux" ) func main() { r := mux.NewRouter() r.HandleFunc("/host", hostHandler).Host("localhost") // r.Host("localhost").Path("/host").HandlerFunc(hostHandler) err := http....阅读全文