Tag: 语法

Kotlin二级构造函数

如何在Kotlin中声明次级构造函数? 有没有关于这个的文件? 以下不编译… class C(a : Int) { // Secondary constructor this(s : String) : this(s.length) { … } }

有没有办法在Kotlin的数据类中嵌套一个枚举?

有没有办法在Kotlin的数据类中嵌套一个枚举? data class D(val a:Any) { enum class E {F,G} … } 或者在函数中声明它内联? fun foo() { enum class E {F,G} doSomething() } 我无法find允许声明枚举的规则的文档。

Kotlin中分号推理的规则是什么?

Kotlin提供了“分号推理”:语法上,子句(例如,语句,声明等)由伪标记SEMI分隔,后者代表“分号或换行符”。 在大多数情况下,Kotlin代码中不需要分号。 这是语法页面所说的。 这似乎意味着在某些情况下需要指定分号,但是它没有指定它们,而下面的语法树并没有明确地表示这一点。 此外,我怀疑有些情况下,此function可能无法正常工作,并导致问题。 所以问题是应该在什么时候插入一个分号,以及为了避免编写错误的代码,需要注意哪些角落情况?

用`this`表示接收器时“标签在Kotlin中的位置

我是Kotlin的新手。 我很好奇在Kotlin中用前缀@或后缀@标记的区别。 我刚刚看到一个写SignInActivity@this的代码,看起来和this@SignInActivity完全一样。 这两个完全一样吗? 如果不是,两者有什么区别? 我试图在*@this表单上做一些研究,但是我找不到任何参考。 我只能find这个官方文档来演示this@* 。 如果有人能与我分享我应该去的正确的参考,那将是很好的。

Kotlin和详细的数组实例化

假设我有通过4个顶点的路径。 在做快速原型时,我会在java中定义这个 double[][] path = {{1.0, 2.0}, {1.0,3.0}, {3.0,4.0}, {8.0,9.0}} 使用arrayOf和doubleArrayOf函数,Kotlin中的代码将会是相同的 val path = arrayOf(doubleArrayOf(1.0, 2.0), doubleArrayOf(1.0, 2.0), doubleArrayOf(1.0,3.0), doubleArrayOf(8.0,9.0)) 这感觉有点冗长。 有没有解决这个问题的Kotlin方法? 编辑:用例是在数字数据的“REPL like”环境中回答查询,例如Matlab或SciPy。

kotlin:2个lambda参数的语法

我是新来的kotlin。 我有一个与2重载的方法的Java类。 一个接受一个function,另一个接受两个function mapToEntry(Function valueMapper) 和 mapToEntry(Function keyMapper, Function valueMapper) nowm in kotlin,我试图调用与2参数的版本(如在Java中): myClass.mapToEntry(r -> r, r -> r) 但我得到编译错误。 Kotlin:意外的令牌(使用’;’来分隔同一行上的expression式) 什么是正确的语法?

Kotlin语法混乱:fun Foo.bar()=(…)

我很困惑下面的代码行应该做什么: fun MyContext.req() = request as LaunchRequest LaunchRequest是一个Java类,而MyContext是一个Kotlin数据类。 我试过查找使用这种语法的Kotlin代码的例子,但是还没有find任何东西。 MyContext没有req()函数,那么这是为MyContext定义一个新的函数,它返回一个types为LaunchRequest “request”variables?