1. 函数
fun max(a: Int, b: Int): Int {
return if (a > b) a else b
}
函数声明以关键字fun开始,函数名称max
在kotlin中,if是表达式,不是语句,表达式和语句的区别是:表达式有值,语句没有值
Java中所有控制结构都是语句
Kotlin中除了循环以外大多数控制结构都是表达式
表达式函数体
可以用一个表达式作为完整的函数体
fun max(a: Int, b: Int): Int = if (a > b) a else b
如果函数体写在花括号内,这个函数就有代码块体
如果返回了一个表达式,它就有表达式体
进一步简化max函数,省略返回值类型
fun max(a: Int, b: Int) = if (a > b) a else b
Kotlin作为一门静态类型语言,编译器会分析作为函数体的表达式,并把它的类型作为函数的返回类型
注意:只有表达式函数的返回类型可以省略。对于有返回值的代码块体函数,必须显示地写出返回类型和return语句。
2.变量
在Java中声明变量以类型开始,Kotlin中以关键字开始,然后是变量名称
和表达式函数一样,如果不指定变量的类型,编译器会分析初始化器表达式的的值,并把它的类型作为变量的类型
可变变量和不可变量
var(variable):可变引用 注: 这个单词就是可变的意思
val(value):不可变引用 对应java中final变量
默认情况下,尽可能使用不可变引用 val,在定义val变量的代码块执行期间,val变量只能进行一次初始化
尽管val引用自身是不可变的,但是它指向的对象是可能变的
val languages = arrayListOf("Java")
languages.add("Kotlin")
3.字符串模板
字符串可以包含模板表达式,即一些小段的代码,会进行求值,并把结果合并到字符串中。模板表达式一美元符($)开头
val i=100
println("i=$i")
打印结果:i=100
或者使用花括号括起来的任意表达式
val s="adb"
val str="$s.length is ${s.length}"//执行结果为“adb.length is 3”