栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

按时间分数进行睡眠

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

按时间分数进行睡眠

这行:

s := time.Hour/73.0

是一个简短的变量声明,右侧表达式为:

time.Hour/73.0
time.Hour
time
包中的类型常量,其类型为
time.Duration
;并且
73.0
是一种
无类型数值常量
,其在表达时,将可能的话采取适当的类型。由于
time.Duration
具有
int64
作为其基础类型,因此
73.0
可以在
time.Duration
不损失精度的情况下将常量转换为常量,从而
time.Hour/ time.Duration(73.0)
可以执行常量表达式。

另一行:

d := 73.0s := time.Hour/d

第一行是一个简短的变量声明,其中的类型

d
将从右边的表达式中推断出来,这是一个无类型的数字常量(确切地说是带浮点字面量)。由于需要一种类型,因此将使用其默认类型
float64
。因此
d
将是type的变量
float64

下一行的简短变量声明:

time.Hour /d
,这
time.Hour
也是type的值
time.Duration
,但是您尝试将其除以type的值
float64
,这在Go中是不允许的。

要使其工作,您必须显式转换

d
time.Duration

s := time.Hour / time.Duration(d)

d
必须为类型
time.Duration

d := time.Duration(73.0)s := time.Hour / d

要么:

var d time.Duration = 73.0s := time.Hour / d

time.Duration
例如,如果值不能用表示,则这些将不起作用
73.5
(因为
time.Duration
具有
int64
基础类型)。在这种情况下,您必须转换
time.Hour
float64
,执行除法并将结果转换为
time.Duration
,例如:

d := 73.5s := time.Duration(float64(time.Hour) / d)

阅读有关该主题的更多详细信息:

规格:常数

围棋博客:常量



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/471079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号