Tag: 语法

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中分号推理的规则是什么?

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

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

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

“Null-Safe”收集语言

免责声明:如果你有更好的标题或标签,请编辑这个问题 在编译时有一些Kotlin语言提供了Null安全性。 如果变量在初始化之前被读取,编译器将会抛出语法错误。 有没有一种语言,可以在编译时确保集合在集合中访问该值之前将包含某个值(由整数索引或任意ID标识)? 有没有一个正式的语言处理这个? 例1 val list = ArrayList<String>() val obj: String = list.get(0) // –> syntax error (x is empty at this point) 例2 val map = HashMap<String, String>() map.put("key1", "test") val obj: String = map.get("key2") // –> syntax error (Key2 is not in the map)

右边类型的运算符的优先级的原因

http://confluence.jetbrains.net/display/Kotlin/Grammar#Grammar-Precedence给出Kotlin的运算符优先级表,包括右边类型的运算符: , as和as? ,它们在乘法和前缀运算符之间有优先权。 有理由给他们这个特殊的优先权吗? 我不能不顾一切的必要/有利的情况; 我错过了什么?

Kotlin二级构造函数

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