1、定义变量
var number : Int = 10;
val str : String = "test";
var number1 = 10f;
val str2 = "test";
看一下java编译结果:
private static int number = 10;
@NotNull
private static final String str = "test";
private static float number1 = 10.0F;
@NotNull
private static final String str2 = "test";
总结为两点:
1、var 用来定义可变量、val用来定义不可常量(final修饰)。
2、定义变量有两种方式,一种是var(val) 变量名 : 数据类型 = 具体值。也可以简化的写成 var(val) 变量名 = 具体值,但是在编译的时候,与前者是一样的。kotlin会自动识别类型,这边要避免理解成动态语言,kotlin还是在编译的时候确定了类型。
注:为什么支持var(val) 变量名 = 具体值,因为很多动态语言可以通过kotlin转义,所以kotlin的写法才可以如此智能和多变。
2、非空判断
前面讲过kotlin是可以有效减少空指针的,但是kotlin也是允许赋空的,那如何使用:
var str3 : String? = null;
// 也就是在数据类型后面加个?。我们看一下编译结果:
@Nullable
private static String str3;
// 所以从这边可以知道kotlin是从编写的源头杜绝空指针的问题。
3、访问修饰符
简单解释一下internel,意思就是同一个编译模块里,可以互相访问,在gradle里面就是以module为维度划分,比如创建一个libarary,那该module下都可以调用。
更具体的在面向对象中会描述。