““我正在尝试输出channel的值,该值从结构中接收到值,该值应该是字符串和时间。它输出这两个值,但是它包括这条奇怪的行” +0300 +03 m = +0.001997101“之后。”
尝试了fmt包中的许多其他操作,但仍无济于事。也尝试过时间包中的东西
package main
import (
"fmt"
"os"
"os/signal"
"sync"
"syscall"
"time"
)
var wg sync.WaitGroup
type widget struct {
Label string
Time time.Time
}
func main() {
c := make(chan widget)
sc := make(chan os.Signal, 1)
done := make(chan bool, 1)
signal.Notify(sc, syscall.SIGINT,
syscall.SIGTERM,
syscall.SIGHUP,
syscall.SIGKILL,
syscall.SIGSEGV,
)
go func() {
sig := <-sc
fmt.Println()
fmt.Println(sig)
done <- true
}()
go send(c)
go receive(c)
<-done
fmt.Println("Program exited")
}
func send(p chan<- widget) {
producer := widget{
"widget_id_34",
time.Now(),
}
p <- producer
}
//where im grtting the problem from i beilieve
func receive(c <-chan widget) {
out := <-c
fmt.Printf("%v", out)
//fmt.Fprintln(os.Stdout, <-c)
}
答案 0 :(得分:0)
m
字段是monotonic time。根据文档:
剥离单调时钟读数的典型方法是使用
t = t.Round(0)
。
这样做将产生一个没有m
值的时间。 +0300
是时区偏移量,它是时间值的一部分(没有它,时间值将无用,因为它的误差范围为+/- 23小时)。