代码之家  ›  专栏  ›  技术社区  ›  andylamax

在Kotlin1.2中没有Kotlin.Math类,如文档中所述

  •  0
  • andylamax  · 技术社区  · 6 年前

    最近我一直在处理Kotlin多平台的问题,我完全理解开发的本质。最初,我有自己期望的数学类(在公共模块中),在JS和JVM环境中有实际的类。

    因为我喜欢阅读文档,我发现自从Kotlin1.2以来,数学liblary已经被添加到标准liblary中。当我使用kotlin 1.2.51时,这会给我带来麻烦,我在公共模块和任何特定于平台的模块中尝试从kotlin.math访问类时,会收到一个错误。

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

    4 回复  |  直到 6 年前
        1
  •  3
  •   Roland    6 年前

    这个 Math -类已弃用,弃用的消息包含:

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

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

    所以@mtak的答案是正确的,尽管没有提到,但是您应该使用 kotlin.math.* -进口 相反 你的 数学 一流的。

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

    我想得越多:我不知道是否有 数学 -在Kotlin的jvm变量中类(找不到任何相关内容),因此在多平台项目中, 数学 -类访问可能总是失败的。

        2
  •  1
  •   user8959091    6 年前

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

        3
  •  1
  •   Ilya    6 年前

    在Kotlin标准库中,数学函数作为 kotlin.math 包裹。

    因此,您需要导入该包,然后才能使用它的函数,例如 sin , sqrt 等等。

    import kotlin.math.*
    
    val sqrt2 = sqrt(2.0)
    

    还可以逐个导入函数,例如 import kotlin.math.sqrt 或者说他们完全合格 val result = kotlin.math.sqrt(2.0)

        4
  •  0
  •   andylamax    6 年前

    过了一会儿(我甚至觉得自己很蠢)。我发现已经添加了kotlin公共模块中的kotlin.math库。唯一的区别是,它没有像我通常习惯的那样的“数学”前身。

    所以,
    圆(x:float)就是圆(x:float)
    sin(x:float)只是sin(x:float)