【发布时间】:2019-08-27 15:01:00
【问题描述】:
“我正在尝试输出一个 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)
}
【问题讨论】:
-
[widget_1 20:27:38.482204] 我的答案应该是这样的,我不确定我做错了什么
-
"从 fmt 包中尝试了许多其他的东西," 对于时间,显而易见的地方是 package time..的文档。