Kotlin学习之声明变量和值

在Kotlin中,一切都是对象。所以,所有变量也都是对象(也就是说,任何变量都是根据引用类型来使用的)

Kotlin的变量分为var(可变的)、val(不可变的)

var 是可写的,在它生命周期中可以被多次赋值;

val 是只读的,仅能一次赋值,后面就不能被重新赋值。


package com.zhoujian.kotlindemo

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.util.Log

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var a = 1
        a = 2
        Log.i("zhoujian", "a=" + a);
        Log.i("zhoujian", "a::class=" + a::class);
        Log.i("zhoujian", "a::class.java=" + a::class.java);

        Log.i("zhoujian", "-----------------------------------------------------------------1");

        var x = 5
        x += 1
        Log.i("zhoujian", "x=" + x);


        Log.i("zhoujian", "-----------------------------------------------------------------2");


        val b = "a"
        Log.i("zhoujian", "b=" + b);
        Log.i("zhoujian", "b::class=" + b::class);
        Log.i("zhoujian", "b::class.java=" + b::class.java);

        Log.i("zhoujian", "-----------------------------------------------------------------3");


        val c: Int = 1 //立即赋值
        val d = 2  //自动推断出Int类型
        Log.i("zhoujian", "c=" + c);
        Log.i("zhoujian", "d=" + d);

    }
}

打印结果:

06-11 17:08:26.646 20019-20019/? I/zhoujian: a=2
06-11 17:08:26.648 20019-20019/? I/zhoujian: a::class=int (Kotlin reflection is not available)
06-11 17:08:26.648 20019-20019/? I/zhoujian: a::class.java=int
06-11 17:08:26.648 20019-20019/? I/zhoujian: -----------------------------------------------------------------1
06-11 17:08:26.649 20019-20019/? I/zhoujian: x=6
06-11 17:08:26.649 20019-20019/? I/zhoujian: -----------------------------------------------------------------2
06-11 17:08:26.649 20019-20019/? I/zhoujian: b=a
06-11 17:08:26.649 20019-20019/? I/zhoujian: b::class=class java.lang.String (Kotlin reflection is not available)
06-11 17:08:26.649 20019-20019/? I/zhoujian: b::class.java=class java.lang.String
06-11 17:08:26.649 20019-20019/? I/zhoujian: -----------------------------------------------------------------3
06-11 17:08:26.649 20019-20019/? I/zhoujian: c=1
06-11 17:08:26.649 20019-20019/? I/zhoujian: d=2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值