Datetime Go的替代日期/时间库

Datetime Go的替代日期/时间库,datetime,time,go,Datetime,Time,Go,除了Golang的时间套餐,还有其他选择吗?我无法理解它笨重的界面和奇怪的做事方式。语言总体上是很棒的,但这一部分我从来都不喜欢 有人吗?一个真正好的、彻底的教程也会有用(我还没有找到) 我现在要做的是一个goroutine,每秒只更新10次(或者我设置的任何可变间隔)。我还没有实现它,因为这个包不是很好。这是psuedo代码 function GoRoutine(updatesPerSecond int) { interval = 1000msec / updatesPerSecond

除了Golang的
时间
套餐,还有其他选择吗?我无法理解它笨重的界面和奇怪的做事方式。语言总体上是很棒的,但这一部分我从来都不喜欢

有人吗?一个真正好的、彻底的教程也会有用(我还没有找到)

我现在要做的是一个
goroutine
,每秒只更新10次(或者我设置的任何可变间隔)。我还没有实现它,因为这个包不是很好。这是psuedo代码

function GoRoutine(updatesPerSecond int) {
    interval = 1000msec / updatesPerSecond

    for {
        if enoughTimeHasPassed {
            doThings()
        }
    }
}

你有没有在阅读文档

您需要使用:


然后像
go-Loop(60)

那样使用它。你能解释一下你发现的特别笨重的部件吗?什么部件不笨重。即使得到像时间和格式这样简单的东西也可能很棘手。它使用一种奇怪的机制来减去时间。我想做的很简单。我正在编写一个我希望每秒只更新10次的应用程序(至少是goroutine)。时间库对一些简单的事情没有帮助。发布一些(伪)代码/概述你的方法,以及你觉得哪些部分笨重/难以理解。如果我有一个关于如何做的问题,我会写这样一个问题;我想知道是否有其他选择。无论如何,我将把它写下来并编辑我的问题。
对于u=time.Tick(time.Second/time.Duration(updatesperssecond)){doThings()}
——你真的不清楚你发现什么困难。我担心,替代方案可能会让其他人感到困惑。我确实阅读了文档,但我发现它相当笨拙。这对我很有帮助,让我对如何在围棋中做这些事情有了一些见解,谢谢。@JesseBrands一定要投票支持那些对你有帮助的答案,并接受那些能解决你问题的答案。你确定你的例子是正确的吗?未打印任何消息。另外,如果我把它放在主函数中(出于测试目的),应用程序就会崩溃,表示所有goroutine都处于休眠状态。更正,它实际上似乎只勾选了一次。如果您的
main
没有等待就退出,则go func将不会执行。我也犯了一个错误,应该是
NewTicker
。关于什么的教程?这相当简单。
func Loop(fps int) {
    t := time.NewTicker(time.Second / time.Duration(fps))
    for t := range t.C {
        fmt.Println("tick", t)
    }
}
func main() {
    go Loop(60)
    time.Sleep(10 * time.Second)
}