Kotlin 函数与包的使用详解
1. 表达式体函数
表达式体函数的语法与变量定义类似,在 = 符号后指定初始化表达式。与变量一样,表达式体函数允许省略结果类型。例如:
fun circleArea(radius: Double) = PI*radius*radius // Double 类型会被自动推断
表达式体函数足够简单,因此可以省略显式的类型指定。但使用此特性时需谨慎,复杂表达式通常写成普通的块形式会更具可读性。
需要注意的是,如果在 = 符号后放置 {} 块来定义块体函数,会得到意想不到的结果,因为此时的块会被解释为 lambda 表达式。例如:
fun circleArea(radius: Double) = { PI*radius*radius }
此定义对应一个返回另一个函数的函数,该函数用于计算固定半径的圆面积。而以下定义:
fun circleArea(radius: Double) = {
return PI*radius*radius // 期望的函数,但会因类型不匹配产生编译时错误
}
会因类型不匹配以及 return 在 lambda 表达式中默认被禁止而产生编译时错误。
超级会员免费看
订阅专栏 解锁全文
1118

被折叠的 条评论
为什么被折叠?



