如文档中所述,kotlin 1.2 中没有 kotlin.Math class

No kotlin.Math class in kotlin 1.2 as it is said in the documentation

我最近一直在和kotlin multiplatform打交道,我完全理解开发的本质。最初,我有自己预期的 Math class(在公共模块中),并且在 JS 和 JVM 环境中有实际的 classes。

因为我喜欢看文档,所以我发现从kotlin 1.2开始标准库就加入了Math库。这让我很困扰,因为我正在使用 kotlin 1.2.51,并且在我的公共模块和任何平台特定模块中尝试从 kotlin.Math 访问 class 时出错。

我没有得到什么?如何访问我的公共模块中的 kotlin.Math class?

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

Math-class 已弃用,弃用消息包含:

Use top-level functions from kotlin.math package instead.

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

所以@mTak 的答案不知何故是正确的,即使没有提到,你应该使用 kotlin.math.*-import instead Math-class.

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

我想得越多:我不知道 Kotlin 的 jvm 变体中是否有 Math-class(找不到任何相关信息)并且所以在多平台项目中,Math-class-access 应该总是失败。

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

因此您需要导入该包,然后您就可以使用其中的函数,例如 sinsqrt 等等。

import kotlin.math.*

val sqrt2 = sqrt(2.0)

您也可以一个一个导入函数,例如import kotlin.math.sqrt 甚至称他们完全合格 val result = kotlin.math.sqrt(2.0)

过了一会儿(我什至觉得自己很傻)。我发现kotlin公共模块中的kotlin.math库已经添加了。唯一的区别是,它没有我通常习惯的 'Math.' 前身。

所以,
Math.round(x: Float) 就是 round(x: Float)
Math.sin(x: Float) 只是 sin(x: Float)