为什么Go限制器不是';当极限=0时,t工作?

为什么Go限制器不是';当极限=0时,t工作?,go,rate,Go,Rate,我正在使用,当限制为0时似乎无法正常工作。 它应该拒绝所有事件,但事实并非如此。(注意,我没有使用rate.Every(),在0的情况下使用set limit Inf) 守则: package main import ( "fmt" "golang.org/x/time/rate" ) func main() { rl := rate.NewLimiter(0, 1) for i := 0; i < 1000;

我正在使用,当限制为0时似乎无法正常工作。 它应该拒绝所有事件,但事实并非如此。(注意,我没有使用rate.Every(),在0的情况下使用set limit Inf)

守则:

package main

import (
    "fmt"
    "golang.org/x/time/rate"
)

func main() {
    rl := rate.NewLimiter(0, 1)

    for i := 0; i < 1000; i++ {
        fmt.Println(rl.Allow())
    }

}
主程序包
进口(
“fmt”
“golang.org/x/time/rate”
)
func main(){
rl:=速率新限制器(0,1)
对于i:=0;i<1000;i++{
fmt.Println(rl.Allow())
}
}
结果都是真的


您可以检查
Burst是一次调用中允许、保留或等待的最大令牌数,因此较高的Burst值允许同时发生更多事件。零突发不允许任何事件,除非limit==Inf。
@mh cbon问题不是突发值,而是限制值(第一个)。如果limit=0,则不允许发生任何事件。如果您认为正确,请填写错误报告。