kotlin 函数

函数的声明

fun max(a: Int, b: Int): Int {
  return if (a > b) a else b
}

函数的声明以关键字fun开始,函数名称紧随其后,接下来是括号括起来的参数列表。参数列表后跟着的返回值类型,他们之间用一个冒号隔开。花括号包括的是函数体,return关键字与java相比没有变化。
kotlin中的if是表达式,而java中的if是语句,因为kotlin中if携带返回值的,而java中的if只有分支判断的能力。故,上面的例子中可以把整个if表达式作为返回值进行返回。

表达式函数体

对于上面的例子我们可以改为:

fun max(a: Int, b: Int): Int = if (a > b) a else b

看起来该函数更加简洁,省略的花括号和return关键字,外加一个=号。这种函数称为表达式体函数,上面的的函数样式属于代码块体函数。
上面的例子还可以继续简化:

fun max(a: Int, b: Int) = if (a > b) a else b

去掉返回值类型,或者叫隐藏返回值类型,因为kotlin和java一样都是静态类型语言,变量和表达式只能有一种类型被编译器理解。当一个变量或者表达式类型唯一,通过类型推倒原则,是可以不声明的,编译器会帮你指定。

空实现函数

Java代码中经常会看到一些空实现函数,比方说实现了一个接口,接口中有几个方法都需要实现,但是你可能只会用到其中的一个方法,这就很让人难受,不得不空实现,但又没什么用还需要写方法体。kotlin中可以这么写,举例:

public fun onClick() = Unit

Java中你必须这么写:

public void onClick() {
}

一行搞定,还不需要花括号,让代码更接近现实逻辑思维。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容