文档中没有提到kotlin 1.2中的kotlin.Math类

时间:2018-07-26 06:10:54

标签: kotlin kotlin-multiplatform

我最近一直在与kotlin跨平台打交道,我完全了解开发的本质。最初,我有一个自己期望的Math类(在一个公共模块中),而我在JS和JVM环境中有实际的类。

由于我喜欢阅读文档,所以我发现自Kotlin 1.2起,数学库已添加到标准库中。这让我很麻烦,因为我正在使用kotlin 1.2.51,并且在我的通用模块和任何平台特定模块中尝试从kotlin.Math访问类时遇到错误。

我没有得到什么?如何在我的通用模块中访问kotlin.Math类?

4 个答案:

答案 0 :(得分:3)

Math类已被弃用,并且已弃用的消息包含:

  

而是使用kotlin.math包中的顶级函数。

(另请参见https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-math/index.html

以某种方式@mTak的答案是正确的,即使未提及,您也应该使用kotlin.math.*类的Math-import

或者,您也可以导入kotlin.math.max等,具体取决于您实际需要的功能。

我想得更多:我不知道Kotlin的jvm变量中是否曾经有Math类(无法找到与此有关的任何东西),因此在一个多平台项目中, Math类访问可能总是应该失败。

答案 1 :(得分:1)

像这样导入它:import kotlin.math.*

答案 2 :(得分:1)

在Kotlin标准库中,数学函数作为顶级函数提供在kotlin.math包中。

因此,您需要导入该程序包,然后才能使用其中的功能,例如sinsqrt等。

import kotlin.math.*

val sqrt2 = sqrt(2.0)

您也可以一个接一个地导入功能,例如import kotlin.math.sqrt甚至称他们为完全合格的val result = kotlin.math.sqrt(2.0)

答案 3 :(得分:0)

过了一会儿(我什至感到愚蠢)。我发现已经添加了kotlin通用模块中的kotlin.math库。唯一的区别是,它没有“数学”。像我通常所习惯的那样。

因此,
Math.round(x:Float)只是圆形(x:Float)
Math.sin(x:Float)就是sin(x:Float)