我最近一直在与kotlin跨平台打交道,我完全了解开发的本质。最初,我有一个自己期望的Math类(在一个公共模块中),而我在JS和JVM环境中有实际的类。
由于我喜欢阅读文档,所以我发现自Kotlin 1.2起,数学库已添加到标准库中。这让我很麻烦,因为我正在使用kotlin 1.2.51,并且在我的通用模块和任何平台特定模块中尝试从kotlin.Math访问类时遇到错误。
我没有得到什么?如何在我的通用模块中访问kotlin.Math类?
答案 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
包中。
因此,您需要导入该程序包,然后才能使用其中的功能,例如sin
,sqrt
等。
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)