【发布时间】:2018-01-07 07:35:18
【问题描述】:
我是 Kotlin 的新手,正在研究数据类型。我采用了一个Int 类型,然后尝试通过说num as Double 将其转换为Double,这是一个在java 中有效的调用(在语法上不是,但你明白了)。但是,这失败了,说 Int 不能转换为 Double。我假设这是因为它是基于 Integer 类而不是原始 int 数据类型构建的。我是正确的,什么是最有效的转换值的方法?有一个.toDouble() 函数,但这似乎效率低下且笨拙。
【问题讨论】:
-
从下面的答案中得到的最大收获是,数字在 koltin 中被视为对象(并且必须显式转换),但编译器尽可能使用原语来最大化性能和效率,所以不用担心关于那个。
-
这是 2017 年 - 在 99.9% 的情况下,数值操作是否有效并不重要。我曾研究过热建模等情况,但很少有这样的担心不是微优化和浪费时间的情况。
-
@corsiKa 我们很多人都需要知道这些信息,它仍然像 10 年前一样重要。为什么您认为他们正在改进处理器中的 SIMD 支持?此外,如果您不考虑这一点,任何类型的图像或音频操作都会非常低效
-
@jontro 您似乎没有阅读我的评论。我研究过一些重要的案例——Beowulf 集群上的十亿多多边形热建模场景。当然,这很重要。然而,绝大多数,压倒性的,极其庞大的大多数,实际上至少 99%(不夸张)不会在意。对于每个进行音频处理的工程师,有 100 名工程师为 Big Company Inc 抽出另一个内部网络应用程序,以替换不断从公司共享驱动器中删除的电子表格。
-
@corsiKa 我完全阅读了您的推荐,但这仍然是一个有效且很好的问题,这里的很多主题都是关于专业知识的