初级会员
  • 第 12984 位会员
  • zhanyiwp
  • 2017-10-09 02:03:58
  • Offline
  • 21 6

最近发布的主题

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 不太明白你想问什么,Get失败的时候 不是调用panic了吗 一旦走到这个分支 程序就退出了啊。你又没有recover。
  • 评论了主题 求助个MAP哈希表问题
    这是要干啥?
  • 文章中举的例子太绕了,而且说得不是很清楚,我觉得关键的原因在于: 当使用slice作为函数参数时,由于go的函数参数是值传递方式,所以会复制整个slice结构体,即 struct Slice { // must not move anything byte* array; // actual data uintgo len; // number of elements uintgo cap; // allocated number of elements }; 假设参数叫slice1 被复制的临时值叫slice2 结构体被复制后,在函数内部 可以通过slice2修改其指向的array(slice1也指向这个array),但是当进行append时,由于len和cap是值传递,所以函数外的slice1的len和cap不会被修改。slice1自然也就不会有任何更改。至于为什么在中间进行append时 slice1就被修改了 其实是因为append修改底层引用的array,所以slice1看上去被修改了,(其实是引用的底层array被修改)
  • 评论了主题 求 JSON 2个函数
    #9 @zhanyiwp ```go package main import ( "encoding/json" "fmt" ) type Test struct { Name string Sex string Age int } type Test2 struct { Code int Msg Test } func JSON_Serialize(obj interface{}) (b []byte, err error) { b, err = json.Marshal(obj) if err != nil { return nil, err } return b, nil } func JSON_Deserialize(req []byte) (s map[string]interface{}, err error) { err = json.Unmarshal(req, &s) if err != nil { return nil, err } return s, nil } func main() { test := Test{"zy", "male", 20} test2 := Test2{0, test} req, _ := JSON_Serialize(&test2) fmt.Println(string(req)) req2map, _ := JSON_Deserialize([]byte(req)) fmt.Println(req2map) req2map["Code"] = 5 fmt.Println(req2map) } ```
  • 评论了主题 求 JSON 2个函数
    #9 @zhanyiwp 晕 这个代码直接粘贴过来 换行没了。。