私はちょうど行くと出始めている、と私が書いた最初のプログラムでは、私も構造体でGoの時間が異なって印刷されるのはなぜですか?
{wall:0 ext:63533980800 loc:<nil>}
が、タイプtime.Time()
ように見えた何ものだった上困惑している示した構造体を、プリントアウト、およびグーグルサーチはthis part of the Go source codeに私を連れて来ました。そこでは、「壁時計」と「単調時計」の違いがコメントで説明されています。だから、単独でそれをテストするための
私は新しいミニマルなプログラム作成:
-
:だから私はここについての二つのことを不思議に思う
- 構造体の一部がウォールクロックとして出力されるのはなぜでしょうか? y(
the_struct.the_time
を使用)? - 私の他のプログラムのコードがlocのために
<nil>
を印刷するのは問題ですか?どのように私はそれを解決することができますか?
{{13719544904843884912 534246 0x1140680}}
{the_time:{wall:13719544904843884912 ext:534246 loc:0x1140680}}
2017-09-11 05:08:11.35635032 +0200 CEST m=+0.000534246
{{200 63640696048 0x1140680}}
{the_time:{wall:200 ext:63640696048 loc:0x1140680}}
2017-09-11 05:07:28 +0200 CEST
:
package main
import (
"fmt"
"time"
)
type TheStruct struct {
the_time time.Time
}
func main() {
the_struct := TheStruct{time.Now()}
fmt.Println(the_struct)
fmt.Printf("%+v\n", the_struct)
fmt.Println(the_struct.the_time)
fmt.Println()
the_struct_2 := TheStruct{time.Unix(1505099248, 200)}
fmt.Println(the_struct_2)
fmt.Printf("%+v\n", the_struct_2)
fmt.Println(the_struct_2.the_time)
}
次を出力します