Go - 运算符重载

Met*_*dio -3 go

我已经开始研究Go了,我想了解下面发生的事情:

time.Sleep(1000 * time.Millisecond) // Works
time.Sleep("1000ms") // Doesn't work
Run Code Online (Sandbox Code Playgroud)

如果您打印到控制台,time.Milliseconds您可以看到1ms.所以我认为我可以简单地用值调用该方法"1000ms",但是我得到一个错误.接下来我在Go中搜索了运算符重载,但它不支持它.我知道time.Sleep获取time.Milliseconds数据类型,但如果它不支持重载运算符,Go如何允许它*

Isu*_*era 5

Sleep()接受一个Duration typeint64.因此,如果不对其进行类型转换,则无法将字符串类型对象作为参数传递.

1ms由于这种方法,你得到了输出

(time.Duration) String() string
Run Code Online (Sandbox Code Playgroud)