问题标签 [kotlinc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kotlin - 如何找到默认的 kotlin 编译器参数值?
目前我在我的 gradle 构建文件中使用了一堆编译器标志。我确定其中一些是我不希望明确指定的默认值(因此它们会随着编译器的更新而自动更新)。
但我找不到任何关于各种编译器选项默认值的文档。如何确定它们?
kotlin - 如何从已编译的 kotlin 类中删除调试信息
有什么方法可以让 kotlin 编译器停止向编译的类文件添加调试信息?类似于javac 的-g:none
参数?
kotlinc - Kotlin 编译器不创建 Kt 文件
我一直在玩 Kotlin 一段时间,但现在我突然遇到了一个问题。
问题很简单:当我用 kotlinc file.kt 编译文件时,我的文件夹中没有 fileKt.class 文件。我得到一个 file.class,但没有 Kt 结尾。
当我尝试使用 kotlinc *.kt 进行编译时,我得到“错误:找不到源文件或目录:*.kt”。问题可能是什么?
kotlin-js - 如何将 Kotlin 文件编译为 JavaScript?
嗨,我开始在 Node 上使用 KotlinJS,我已经放置了一个非常简单的 kotlin 文件,我想使用原始编译器对其进行kotlinc-js
编译。不使用 gradle
这是make
我尝试过但没有成功的命令:
它编译得很好,但是当我尝试运行时node main.kt.js
:
throw new Error("加载模块'main.kt'时出错。找不到它的依赖项'kotlin'。请检查'kotlin'是否在'main.kt'之前加载。"); ^
错误:加载模块“main.kt”时出错。未找到其依赖项“kotlin”。请检查是否在 'main.kt' 之前加载了 'kotlin'。在对象。(/home/nanospicer/KotlinProjects/KotlinScripting/main.kt.js:2:9) 在 Module._compile (node:internal/modules/cjs/loader:1101:14) 在 Object.Module._extensions..js (node :internal/modules/cjs/loader:1153:10) 在 Module.load (node:internal/modules/cjs/loader:981:32) 在 Function.Module._load (node:internal/modules/cjs/loader:822 :12) 在 Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12) at node:internal/main/run_main_module:17:47
好的,所以我认为它缺少 kotlin 运行时。我将尝试与 JVM 编译器相同的参数:-include-runtime
这会导致错误:
错误:无效参数:-include-runtime 信息:使用 -help 获取更多信息
然后我尝试了:
但它仍然会导致同样的错误。我也尝试删除libraries
标志,它也没有工作
android - Android Kotlin 编译器中使用了哪个 Kotlin 元数据版本
问题
Android 工具使用自定义版本的 Kotlin Compiler。
有没有办法了解这个自定义编译器使用哪个版本的 Kotlin 元数据?
语境
来自 Android-tools 的 Lints
/android/tools/external/com-intellij/kotlin-compiler/
依赖于某个特定的 Kotlin 元数据。您的平均 Kotlin 目标使用不同版本的 Kotlin 编译器。
因此,您的项目中的 Kotlin 更新,假设 1.5.30 -> 1.6.0-M1 会导致问题:
kotlin - Kotlin 编译时间极慢
为什么编译和运行 Kotlin 非常慢(至少在我的机器上)?我的机器上安装了最新版本的 Kotlin 编译器。
具体命令:
它太慢了,打印“hello word”最多需要 9 秒。
我最初认为默认情况下它很慢(我使用了 dDcoder 应用程序),但现在我使用了在线游乐场和 Sololearn,它的速度要快得多。
我的 PC 运行的是带有 Core i5 和 4GB RAM 的 Windows 10。
kotlin - Kotlin 强制显式注释参数名称?@Foo(>>栏<< = 42)
如何强制 Kotlin Annotation 参数的名称显式声明?
据我了解,不可能使用股票 Kotlin 编译器和/或 IDE?我对吗?
如果我们正在考虑自定义实现:
- Kotlin 生态系统中有现成的解决方案吗?
- 是否可以使用 Kotlin Compiler Plugin / KSP 实现防护?
android - 以下注解处理器不是增量的:kotlin-compiler-embeddable
我已经收到这个警告一段时间了:
我相信这是构建时间较慢的原因。但是我找不到与此警告相关的任何内容。有任何想法吗?
java - 在 Kotlin 中声明常量的所有方式之间的性能差异是什么?
由于 Kotlin 不允许您在 Java 中的class
likestatic
成员中直接声明常量,因此我们有几个选项来说明如何在 Kotlin 中做到这一点。我的问题是,每个选项的性能成本是多少,哪个更便宜?我不想知道哪个更具可读性或被认为是最佳实践,我只想从性能的角度来看它。
选项 1:使用伴随对象
所以一个看起来像这样的代码:
在 Java 中看起来像这样:
它创建这个内部类Companion
并实例化它。这是多么昂贵?
选项 2:将其声明为顶级变量
所以这:
变成这样:
它创建一个带有static
成员的新类。这与使用对象存储它有什么不同?
选项 3:使用外部对象
像这样:
在 Java 中看起来像这样:
类似于声明为顶级,除了创建的类有一个INSTANCE
在私有构造函数中初始化的字段。与使用顶级变量相比,这有多昂贵?
选项 4:删除 const 修饰符
因此,您只需使用旧的val
:
这对我来说是个谜。它不会创建任何额外的类,但也不会获得const
修饰符的好处。这意味着该类的每个实例都将拥有自己的 实例TAG
,并为其生成 getter 和 setter,对吗?但我也读到JVM 将其优化为常量。所以这个选项比我最初想象的要多。