《基于Kotlin实战》
1.普通的Java函数
public int max(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
2.Kotlin函数
fun max(a: Int, b: Int): Int {
return if (a > b) {
a
} else {
b
}
}
3.对比Kotlin代码和Java代码
一个Kotlin函数的声明
- 关键字→ 函数名→ 参数列表→返回类型→函数体
-
拿上图举例
- 关键字 fun
- 函数名 max
- 参数列表 (a: Int, b: Int))
-
返回类型 Int
- 同参数列表之间需要冒号隔开
- 函数体
{ return if (a > b) { a } else { b } }
4.Kotlin代码的特性
- Kotlin和很多现代语言一样,省略了每行代码结尾的分号
-
Kotlin中if是有结果值的表达式
-
语句和表达式
- 语句总是包围着它的代码块中的顶层元素,并且没有自己的值
- 表达式有值,并且能作为另一个表达式的一部分使用
-
控制结构
- 在Java中,所有的控制结构都是语句
- 在Kotlin中,除了(for,do和do/while)以外大多数控制结构都是表达式
-
赋值操作
- Java中是表达式
- Kotlin中是语句
-
语句和表达式
5.表达式函数体
- 上面的函数,可以用表达式做完整的函数体,并去掉花括号和return语句
fun max(a: Int, b: Int): Int = if (a > b) a else b
- 还可以进一步简化,省略返回类型
fun max(a: Int, b: Int) = if (a > b) a else b
- 为什么有些函数可以不声明返回类型?
- 作为一门静态语言,Kotlin要求每个表达式在编译器具有类型。
- 对于表达式体函数,编译器会分析作为函数体的表达式,并把它的类型作为函数的返回类型,即使没有显示的写出来。这种分析称为类的推导
- 真实项目还是需要显示的写出返回类型和return语句,有助于理解
网友评论