Kotlin的基础知识

380 阅读2分钟

1.语句和表达式

在Kotlin中,if是表达式,而不是语句。 在Java中,所有的控制结构都是语句。 而在Kotlin中,除了循环(for、while和do/while)以外大多数控制结构都是表达式。 Java中的赋值操作是表达式,在Kotlin中反而变成了语句。

语句和表达式的区别:表达式有值,并且能作为另一个表达式的一部分使用;而语句总是围绕着它的代码块中的顶层元素,并且没有自己的值。

2.变量

声明可变变量和不可变变量

  • val(来自value)——不可变引用。使用val声明的变量不能在初始化之后再次赋值。它对应的是Java的final变量,只可读
  • var(来自variable)——可变引用。这种变量的值可以被改变。这种声明对应的是普通(非final)的Java变量,可读可写

val变量只能进行唯一一次初始化。

3.打印

在Java中的打印输出为System.out.println("Hello, " + name + "!")

而Kotlin通过在字符串字面值中引用局部变量,

  • 只需要在变量名称前面加上字符$即可,如println("Hello, \$name!")
  • 在双引号中直接嵌套双引号,只要它们处在某个表达式的范围内(即花括号内),如println("Hello, ${name}!")

4.Kotlin默认类型

从Java到Kotlin的转换过程中,public修饰符消失了。在Kotlin中,public默认的可见性

5.枚举类

enum class Color {
    RED, ORANGE, YELLOW, GREEN
}

这是极少数Kotlin声明比Java使用了更多关键字的例子:Kotlin用了enum class两个关键字,而Java只有enum一个关键字。

enum class Color(
    val r: Int, val g: Int, val b: Int
) {
    RED(255, 0, 0), ORANGE(255, 165, 0),
    YELLOW(255, 255, 0), GREEN(0, 255, 0);//这里必须要有分号
    
    fun rgb() = (r * 256 + g) * 256 + b
}

Kotlin语法中唯一必须使用分号的地方:如果要在枚举类中定义任何方法,就要使用分号把枚举常量列表和方法定义分开。