kotlin 变量与常量

可变变量与不可变变量

kotlin中的变量分为可变变量和不可变变量,关键字分别为var,val

private var name1: String = "dujie1"
private val name2: String = "dujie2"

变量name1可被修改,变量name2不可被修改,对应的java表达式是这样的:

private String name1 = "dujie1";
private final String name2 = "dujie2";

默认情况下,尽可能的使用val关键字来声明所有的kotlin变量,仅在必要的时候换成var,跟java编程思想中讲到的尽可能使用局部变量的道理一样,对象用完了就及时舍弃掉,再有就是局部好管理。

不可变变量与可变对象

尽管val引用自身是不可变的,但是它指向的对象可能是可变的,例如各种集合:

val list : MutableList<String> = mutableListOf()
list.add("abc")

(MutableList是kotlin的可变List),这里的mutableListOf()就属于可变对象,虽然list是不可变变量,但是它所指向的对象是可变的。

类型省略

上面的例子可以写成:

var name1 = "dujie1"

kotlin和java一样都是一种静态类型的编程语言。这意味着所有表达式的类型在编译期就已经确定了。代码中只是省略的类型的修饰,其实在编译期也是确定了的String类型。这样做让代码更简洁,这就是所谓的类型推倒。

常量与companion object的简单使用

学习kotlin会自然而然的把java作为参考依照,下面直接拿出对比便一目了然。

class A {
    val a = "a"
    companion object{
        val b = "b"
        const val c = "c"
    }
}

对应的java代码

public class A {
    private final String a = "a";
    private final static String b = "b";
    public final static String c = "c";
}

java中的静态内容在kotlin中放到companion object{...}中,const关键字会把变量声明为public类型。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。