我只需要一个指向time.Time的指针,所以下面的代码似乎无效:
./c.go:5:不能取时间地址.现在()
我只是想知道为什么?有没有办法做到这一点,除了先对变量赋值并获取变量的指针?
package main
import "time"
func main() {
    _ = &time.Now()
}
Run Code Online (Sandbox Code Playgroud) 我想自定义结构的编码格式但得到错误:json:错误调用MarshalJSON类型为main.Info:文字中的无效字符'o'为false(期待'a')我的代码出了什么问题?
package main
import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
)
type Info struct {
    name string
    flag bool
}
func (i Info) MarshalJSON() ([]byte, error) {
    var b bytes.Buffer
    b.Write([]byte(i.name))
    if i.flag {
        b.Write([]byte(`"true"`))
    } else {
        b.Write([]byte(`"false"`))
    }   
    return b.Bytes(), nil 
}
func main() {
    a := []Info{
        {"foo", true},
        {"bar", false},
    }   
    out, err := json.Marshal(a)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf(string(out))
}
Run Code Online (Sandbox Code Playgroud)