gpt4 book ai didi

scala.js - 在 Scala.JS 中是否有一个调用来获取我正在运行的平台?

转载 作者:行者123 更新时间:2023-12-05 09:20:41 28 4
gpt4 key购买 nike

我有一些 Scala 代码用于我为 JVM 和 ScalaJS 编译的库。

现在我有一个“纯”项目,在 js 和 jvm 项目中没有特殊代码,由于 intellij 集成和其他一些因素,我想保持这种状态。

但是,我确实有一小部分代码(1-2 行)需要根据我是在 JVM 还是 JS 中进行更改。我想要一种不需要更改整个项目结构的简单方法来完成此任务。

基本上我想要调用“isJS”,如果我使用 JavaScript 则返回 true,否则返回 false。

最佳答案

没有任何标准,因为它需要扩展 JVM 上可用的 API,而 Scala.js 做不到。

您可以使用一个微型 object Platform 轻松构建它,在 js/jvm/ 子项目中有两个不同的实现。例如对于 JS 它将是:

object Platform {
final val isJS = true
final val isJVM = false
}

当然这需要是非纯的。您还可以在一个仅提供该功能的小型库中对其进行抽象。这就是catalystsplatform项目。例如。

如果你想保持完全的纯净和无依赖性,你必须求助于 hack:

val isJS = 1.0.toString == "1"

之所以可行,是因为在 JVM 上,1.0.toString 返回 "1.0",但在 JS 上它返回 "1"

关于scala.js - 在 Scala.JS 中是否有一个调用来获取我正在运行的平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797685/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com