Golang 中国

jimmykuu

Let's Go!!!

Golang China 第 1 号会员,加入于 2012-08-27 18:15



又名丸子,Pythoner + Gopher

jimmykuu最近创建的主题


Go1.9 发布
业界消息jimmykuu • 2017-08-25 10:31
2 go1.9rc1 已经发布
业界消息jimmykuu • 2017-08-12 10:26 • 最后回复来自 jimmykuu
22 社区启用 https
社区开发jimmykuu • 2017-07-31 14:18 • 最后回复来自 jimmykuu
4 Go 1.9 Beta 1 发布
业界消息jimmykuu • 2017-06-22 18:01 • 最后回复来自 mi_tiger
这,就是技术人的江湖
公告jimmykuu • 2016-10-24 23:52
10 Go 1.7.3 版本发布
业界消息jimmykuu • 2016-10-23 02:46 • 最后回复来自 CosPotato
推荐你心中的「极客代言人」,打造《中国技术社群英雄谱》
活动jimmykuu • 2016-10-18 23:47
【活动】有些酷酷的程序员已经开始用代码约妹子了
推广jimmykuu • 2016-07-21 16:17
7 Go1.7beta1 发布了
业界消息jimmykuu • 2016-06-04 17:36 • 最后回复来自 elvindu
2 Go 1.5.3 发布
业界消息jimmykuu • 2016-03-14 13:31 • 最后回复来自 zhanbo
jimmykuu 创建的更多主题

jimmykuu最近回复了


回复了 micross 创建的主题: 请教如何将字符串 `"20181105133155148224"`转成 `[]byte{0x20, 0x18, 0x11, 0x05, 0x13, 0x31, 0x55, 0x14, 0x82, 0x24}` 2018-11-08 10:09

前面理解错了,Go 标准库有这个包

package main

import (
    "encoding/hex"
    "fmt"
    "log"
)

func main() {
    const s = "20181105133155148224"
    decoded, err := hex.DecodeString(s)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(decoded)
}
回复了 verywang 创建的主题: 请问a:=make([] byte,1);n,err:=conn.Read(a)。如何接收未知长度的消息? 2018-07-05 13:29

n,err:=conn.Read(a) 循环接收,至于怎么判断哪里是消息开头,哪里是消息结尾,就看你和发送方怎么约定了。

回复了 jixuduxing 创建的主题: 这样的xml怎么解析? 2018-06-20 20:15

用 slice 就可以,你拿去试一下吧:

package main

import (
    "encoding/xml"
    "fmt"
)

func main() {
    type Constant struct {
        Value string `xml:"value,attr"`
    }

    type Default struct {
        Value string `xml:"value,attr"`
    }

    type Copy struct {
        Value string `xml:"value,attr"`
    }

    type String struct {
        Name     string   `xml:"name,attr"`
        ID       int      `xml:"id,attr"`
        Constant Constant `xml:"constant"`
        Presence string   `xml:"presence,attr"`
    }

    type Int32 struct {
        Name          string  `xml:"name,attr"`
        ID            int     `xml:"id,attr"`
        Presence      string  `xml:"presence,attr"`
        DecimalPlaces int     `xml:"decimalPlaces,attr"`
        Default       Default `xml:"default"`
        Copy          Copy    `xml:"copy"`
    }

    type Template struct {
        XMLName xml.Name `xml:"template"`
        Name    string   `xml:"name,attr"`
        ID      int      `xml:"id,attr"`
        Strings []String `xml:"string"`
        Int32s  []Int32  `xml:"int32"`
    }

    type Templates struct {
        XMLName    xml.Name   `xml:"templates"`
        Version    string     `xml:"version,attr"`
        UpdateDate string     `xml:"updateDate,attr"`
        Templates  []Template `xml:"template"`
    }
    v := Templates{}

    data := `
    <?xml version="1.0" encoding="UTF-8"?>
    <templates version="2.19" updateDate="2017-05-03" xmlns="http://www.fixprotocol.org/ns/template-definition" templateNs="http://www.fixprotocol.org/ns/templates/sample" ns="http://www.fixprotocol.org/ns/fix">
        <template name="MarketOverview" id="1115">
            <string name="MessageType" id="35"><constant value="UA1115"/></string>
            <int32 name="DataTimestamp" id="10178"><copy/></int32>
            <int32 name="DataStatus" id="10121" presence="optional"><default/></int32>
            <string name="SecurityID" id="48" presence="optional"/>
            <int32 name="AShareIndex" id="10001" presence="optional" decimalPlaces="3"><default/></int32>
            <int32 name="BShareIndex" id="10002" presence="optional" decimalPlaces="3"><default/></int32>
            <int32 name="SSEIndex" id="10005" presence="optional" decimalPlaces="3"><default/></int32>
            <int32 name="OrigTime" id="42" presence="optional"><default/></int32>
            <int32 name="OrigDate" id="10003" presence="optional"><default/></int32>
            <string name="EndOfDayMarker" id="10004" presence="optional"><default/></string>
        </template>
    </templates>
    `
    err := xml.Unmarshal([]byte(data), &v)
    if err != nil {
        fmt.Printf("error: %v", err)
        return
    }

    fmt.Println("%v", v)
}
回复了 tmnykf 创建的主题: 入门书本上的第二个实例问题。。。 2018-06-14 15:07

你结果弄错了吧,结果为 12341231234 123

sep 是分隔符的意思。

真不明白作者为何要用输入参数来举例,弄复杂了,定义一个 slice 来举例不是更清晰么。

另外这种操作实际一般用 strings.Join(a []string, sep string)

回复了 51300520 创建的主题: TCP长连接用json通信服务端怎么确定服务? 2018-06-12 10:11

最简单做法先解析到 map[string]interface{} 类型,取出 type

还有种做法你可以参考:

{
  "type": "login",
  "data": "{\\"username\\": \\"abc\\", \\"password\\": \\"123456\\"}"
}

map[string]string 解析后,再根据 type 解析相应的 data

回复了 ccj 创建的主题: 图片 url 存到数据库里,这个url从哪里取呢 2018-06-11 23:34

服务器端接收图片并保存后,根据你的图片存放的地址生成 URL。

回复了 junzizhiyao 创建的主题: 在看《GO语言程序设计》这本书,有个转换json的地方看不懂,望解答 2018-06-07 22:32

传进来的需要解析的内容有可能是 stringint[]*Invoice 三种类型之一。

依次解析这三种类型,如果先解析成功就返回。

回复了 kheviloc 创建的主题: 新手刚学着使用go语言建个网站,已经成功使用贵站的源码运行。但是……。 2018-05-24 15:59

可以查一下如何切换 git 分支的命令,或者下个 git 客户端也行。

回复了 kheviloc 创建的主题: 新手刚学着使用go语言建个网站,已经成功使用贵站的源码运行。但是……。 2018-05-22 14:45

免费版的,建议先去掉吧。

account.go 里的 signupHandler 方法方法里,把相关的代码去掉,然后对应的 form.html 里的相关代码也去掉。

还有就是登陆方法和发帖里的也可以去掉。

jimmykuu 创建的更多回复