小编Dr.*_*emo的帖子

GraphQL有什么缺点吗?

关于GraphQL的所有文章都会告诉你它有多棒,但它有什么缺点或缺点吗?谢谢.

rest restful-authentication graphql

88
推荐指数
5
解决办法
2万
查看次数

如何使用 String() 方法将嵌入式结构正确序列化为 JSON 字符串?

 package main

 import (
    "fmt"
    "encoding/json"
 )

 type Ticket struct {
    From string
    To   string
}

func (t Ticket) String() string {
    return fmt.Sprintf("%s - %s", t.From, t.To)
}

type Passenger struct {
    Name string `json:"Name"`
    Tkt  Ticket `json:"Ticket"`
}

func main() {
    p := Passenger{}
    p.Name = "John"
    p.Tkt.From = "New York"
    p.Tkt.To = "Washington"

    buf, _ := json.Marshal(p)
    fmt.Println(string(buf))
}
Run Code Online (Sandbox Code Playgroud)

此代码输出:

 {"Name":"John","Ticket":{"From":"New York","To":"Washington"}}
Run Code Online (Sandbox Code Playgroud)

但是,使用json.Marshal()方法(对于复杂结构很简单友好),如何使其输出如下:

 {"Name":"John","Ticket":"New York - Washington"}
Run Code Online (Sandbox Code Playgroud)

string format serialization json go

3
推荐指数
1
解决办法
714
查看次数

为什么map [time.Time]字符串有时不起作用?

这是一个示例,表示map [time.Time]字符串"不起作用".

package main

import (
    "fmt"
    "time"
)

type MyDate time.Time

func NewMyDate(year, month, day int, tz time.Location) (MyDate, error) {
    return MyDate(time.Date(year, time.Month(month), day, 0, 0, 0, 0, &tz)), nil
}

func (md MyDate)ToTime() time.Time {
    return time.Time(md)
}

func main()  {
    timeMap := make(map[time.Time]string)

    md1, _ := NewMyDate(2019, 1, 1, *time.UTC)
    md2, _ := NewMyDate(2019, 1, 1, *time.UTC)

    timeMap[md1.ToTime()] = "1"
    timeMap[md2.ToTime()] = "2"

    for k, v := range timeMap {
        fmt.Println(k, v)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

2019-01-01 …

datetime associative-array go

1
推荐指数
1
解决办法
69
查看次数