2022-09-26:以下go语言代码输出什么?A:{"Time": "2020-12-20T00:00:00Z", "N": 5 };B:"2020-12-20T00:00:00Z";C:{"N": 5};D:< nil >。

package main

import (
    "encoding/json"
    "fmt"
    "time"
)

func main() {
    t := struct {
        time.Time
        N int
    }{
        time.Date(2020, 12, 20, 0, 0, 0, 0, time.UTC),
        5,
    }

    m, _ := json.Marshal(t)
    fmt.Printf("%s", m)
}

答案选B。没看过time.Time结构,可能会选A;看过time.Time结构,可能会选C。为什么选B,目前还未找到原因,time.Time有json的Marshal相关方法,可能跟这个有关。

在这里插入图片描述