您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

int * time.Second何时工作,什么时候在golang中不工作?

int * time.Second何时工作,什么时候在golang中不工作?

在Go中,数字文字(例如60)是未 类型化的常量 。这意味着它将被地强制为适用于使用该操作的任何类型。所以当你说:

var x := 5 * time.Second

然后从类型推断出类型为time.Seconda time.Duration,因此文字5也被视为atime.Duration。如果没有什么可以从中推断类型,它将假设一个类型(“布尔,符文,整数,float64,complex128或字符串”)并使用该类型。所以:

x := 180

收益率x类型为int

但是,当您执行某项操作涉及某种类型的东西时,例如说一个变量xan int,则您有两种类型,必须转换一种类型才能使该操作合法。

因此,对于最初的问题“什么时候可以int * time.Second工作,什么时候不能在golang中工作?”,int * time.Second实际上在Go中 永远无法 工作。但5 * time.Secondint * time.Second

Go游览中涉及到这一点:

未类型的常量采用其上下文所需的类型。

Go 2022/1/1 18:15:54 有747人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶