scala - 什么是 ev.R 型?
问题描述
我有一个 ResultSet,我从中获取com.datastax.driver.core.ResultSet
ExecutionInfo,从 executionInfo 中提取 queryTrace,您可以看到以下代码。
resultSet.getAllExecutionInfo.forEach { exeInfo: ExecutionInfo =>
val queryTimeTaken: FiniteDuration = exeInfo.getQueryTrace.getDurationMicros.microsecond //this works fine if i do getDurationMicros microsecond it return ev.R
exeInfo.getQueryTrace.getEvents.forEach { event =>
if (queryTimeTaken > timeTakenLimit) {
TraceLogger.info {
s"DateTime = ${sdf.format {event.getTimestamp}} Description = ${event.getDescription} " +
s"TimeElapsedMicro = ${event.getSourceElapsedMicros} Statement = ${exeInfo.getStatement}" +
s" TimeTaken =$queryTimeTaken"
}
}
}
}
在代码的第二行中
val queryTimeTaken:FiniteDuration=exeInfo.getQueryTrace.getDurationMicros.microsecond
当我这样做时getDurationMicros.microsecond
,它会返回 FiniteDuration 的对象,但如果我这样做getDurationMicros microsecond
,则返回ev.R
类型,有人可以解释一下为什么它会重新设置这种类型。这两行的空间有什么不同?
它与后缀表达式评估有关吗?
编辑一:
def a = 500
val x: FiniteDuration = a.microsecond // this works fine
val y: FiniteDuration = 500 microsecond
def a = 500
val x: ev.R = a.microsecond() // this gives ev.R
val y: FiniteDuration = 500 microsecond
def a = 500
val x: FiniteDuration = a microsecond // this works fine
val y: FiniteDuration = 500 microsecond
解决方案
推荐阅读
- perl - 'module_script.pl' 是执行 'script.pl' 的 Perl 习语吗?
- javascript - 使用 JSON 数据库查找数据并确认它存在,如果不存在则否认它存在
- python - 在 html 中显示 Django 模型数据的最简单方法
- python - 使用 selenium (python) 获取具有部分字符串匹配的元素文本
- linux - 在 Linux 4.14.226 上向后移植 Synopsys DesignWare AXI DMA 驱动程序
- hyperledger-fabric - Hyperledger Fabric:orderer 客户端无法连接到 localhost:7050
- android - 如何让 TalkBack 读入嵌套 RecyclerView 的内容
- tensorflow - Tensorflow 无法导入 vs 代码?
- python - 熊猫:如何计算来自其他地方的人口百分比
- woocommerce - 使用 Woo 商务和 Paypal 付款在我的 Paypal 帐户中收到,但它没有在 Woo 中注册,订单最终超时