golang time.Now().Unix() 文档和实现之间的差异?

https://golang.org/pkg/time/#Unix


指出这个函数的签名是


func Unix(sec int64, nsec int64) Time

意思是,它返回一个Time对象。


但以下程序中止并显示错误消息:


14: 不能使用 now.Unix() (type int64) 作为 type time.Time in assignment`


func main() {

    var now time.Time

    now = time.Now()

    fmt.Println(now)


    var secs time.Time

    secs = now.Unix()

    fmt.Println(secs)

}

以下版本的程序产生输出


func main() {

    var now time.Time

    now = time.Now()

    fmt.Println(now)


    // var secs time.Time

    secs := now.Unix()

    fmt.Println(secs)

}

2016-04-12 18:20:22.566965512 -0400 EDT


1460499622


这只是文档中的错误问题吗?


DIEA
浏览 239回答 1
1回答

函数式编程

文档是正确的,您正在查看错误的Unix. 你使用的方法是这样的;https://golang.org/pkg/time/#Time.Unix它不接受任何参数,在时间对象上调用并以int64. 你引用的版本有两个参数,都是 int64 的,秒和纳秒?(不是肯定的,这就是 nseconds 代表的),它代表 unix 格式的时间,它返回一个time.Time所以扩展你的第二个例子;func main() {    var now time.Time    now = time.Now()    fmt.Println(now)    // var secs time.Time    secs := now.Unix()    fmt.Println(secs)    t := time.Unix(secs, 0) // get a time from the seconds value which is a unix time    fmt.Println(t)}这是上面的与添加的另一行以打印secs. https://play.golang.org/p/KksPPbQ1Jy
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go