在其他编程语言(如Java)中,如果要链接字段,则需要:String a, b, c, d;
是否有可能在Kotlin中链接字段,例如val a, b, c, d
?
here doesn`t provide any info
答案 0 :(得分:4)
不,Kotlin
不支持在语句中声明多个变量。
Kotlin
从Java学到了一些很好的经验教训。其中之一是变量声明。虽然Java支持多行变量声明,但Oracle的Java指南说每行只使用一个声明。
Oracle Java Standard中提到了以下内容:
建议每行一个声明,因为它鼓励评论。换句话说,
int level; // indentation level
int size; // size of table
优先于
int level, size;
绝对不能在同一行声明变量和函数。例如:
long dbaddr, getDbaddr(); // WRONG!
不要在同一条线上放置不同的类型。例如:
int foo, fooarray[]; //WRONG!
注意:上面的示例在类型和标识符之间使用一个空格。另一
acceptable alternative is to use tabs, e.g.:
int level; // indentation level
int size; // size of table
Object currentEntry; // currently selected table entry
请参阅此链接以了解Oracle约定:http://www.oracle.com/technetwork/java/codeconventions-150003.pdf。第页14>声明。
关于type of declaration should be used for Java
这个话题,已经有过一些激烈的争论。所以Kotlin
只是删除了它作为选项。
答案 1 :(得分:1)
首先,Kotlin是一种null-safety语言,这意味着你无法在不初始化的情况下声明字段,而Kotlin对任何类型都没有默认值,即使它是 nullable ,但原始数组有一个例外,例如:IntArray(size)
默认值喜欢java 0
。因此,您无法像在Java中那样编写字段声明的形式,例如:
//Java
private String a,b,c;// they are `null` by default.
private val a:String? // error: property must be initialized
其次,如果您关注字段/变量的定义,它们就完全不同了。字段/变量类型在右侧声明,这意味着您根本无法在Kotlin中声明统一字段/变量,因此它不会&# 39;在Kotlin中有意义,例如:
//Java
String a,b;
//Kotlin
val a, b;
// ^---^--- how to declare the variables type?
// v-- just more than one `val` after introduce the variable types
val a:String; val b:String;
最后,字段是Kotlin中的重组件。当你在Java中声明一个字段时,它只是一个字段,不再是。但是在Kotlin声明一个字段时,它可能是一个属性/字段。并且属性具有getter / backing字段(?)/ setter(?),例如:
// java
String a; //just a field
// kotlin
var a:String = "a" // has a backing field, getter & setter
private var b:String = "b" // it is just a field
@JvmField var c:String = "c"
// ^--- it is a field but it has getter/setter in reflect
// e.g: this::c.getter & this::c.setter