Kotlin开发安卓APP笔记-函数和lambda表达式(1)
2017-12-15 11:59
387 查看
函数声明
在Kotlin中,使用“fun”关键字声明函数:fun bestmk(i:Int):String{ return "猫客技术论坛bestmk.cn建站$i 年啦!" }
可以看出,kotlin函数参数是用 Pascal 符号定义的 name:type。参数之间用逗号隔开,每个参数必须指明类型。函数参数可以有默认参数。这样相比其他语言可以减少重载。
函数使用方法和Java类似
var result=bestmk(1) //返回猫客技术论坛bestmk.cn建站1年啦!
对于类成员函数,通过类实例加“.”方式使用:
例如
KotlinUtils().bestmk(1)
函数的默认参数
和Java不同的是,kotlin函数可以设置默认参数,通过“=”符号添加默认值,例如fun setYear(year:Int=10){ //.... }
如果通过继承重写的函数,默认是会带有父类函数的默认参数;且重写的函数不能在设置默认值。
open class A { open fun foo(i: Int = 10) { ... } } class B : A() { override fun foo(i: Int) { ... } // no default value allowed //override fun foo(i: Int = 2) { ... } //error,父类函数已设置默认值,重写函数,不能再设置默认值。 }
命名参数
调用函数时,可以给传入的参数添加参数名;当一个函数有多个参数时,非常有用。如,有如下的一个函数:fun reformat(str: String, normalizeCase: Boolean = true, upperCaseFirstLetter: Boolean = true, divideByCamelHumps: Boolean = false, wordSeparator: Char = ' ') { ... }
则可以通过该方式调用:
reformat(str)
当该函数的所有参数都没有设置默认值,则需要这样调用:
reformat(str, true, true, false, '_')
此时,可以在调用函数时,给传入的参数添加参数名,增加可读性:
reformat(str, normalizeCase = true, upperCaseFirstLetter = true, divideByCamelHumps = false, wordSeparator = '_' )
只需要传入部分参数情况:
reformat(str, wordSeparator = '_')
注意:调用Java方法的时候不可以使用命名参数方式,Java不支持这种语法。。
返回“Unit”类型函数
如果一个函数不需要返回任何有效值,那么它的返回类型为“Unit”。“Unit”类型只有一个值,即“Unit”。另,可以不显示返回Unit:fun printHello(name: String?): Unit { if (name != null) println("Hello ${name}") else println("Hi there!") // `return Unit` or `return` is optional }
返回的“Unit”也是可选的,下面的方式等同于返回“Unit”类型:
fun printHello(name: String?) { ... }
单表达式函数(Single-Expression functions)
当函数返回一个单表达式的值,可以省略“{ }”直接将该单表达式使用“=”跟在函数定义的后面:fun double(x: Int): Int = x * 2
今天先到这里。。下次在更新
相关文章推荐
- Kotlin开发安卓APP笔记-函数和lambda表达式(2)
- 《转》Kotlin开发安卓APP笔记-函数和lambda表达式(3)
- Kotlin开发安卓APP笔记-类和对象(2)
- Kotlin开发安卓APP笔记实战-写个简易记事本(需求分析)
- Kotlin开发安卓APP笔记-创建工程及基础语法
- Kotlin开发安卓APP笔记-接口
- Kotlin开发安卓APP笔记-数据类型
- Kotlin开发安卓APP笔记实战-写个简易记事本(逻辑)
- Kotlin开发安卓APP笔记-协程(代替线程)
- Kotlin开发安卓APP笔记-类和对象(1)
- Kotlin开发安卓APP笔记-条件语句和循环语句
- Kotlin开发Android笔记12:集合和函数操作符
- 安卓开发笔记——打造属于自己的博客园APP(一)
- Kotlin开发Android笔记3:Kotlin中类与函数
- 安卓开发笔记——打造属于自己的博客园APP(四)
- Kotlin开发Android笔记6:Anko和扩展的函数
- Kotlin开发Android笔记3:Kotlin中类与函数
- 人脸识别开发安卓手机APP 注册人脸 识别人脸
- IOS开发笔记之推广安装(用网页判断是否安装App)
- Android开发学习笔记(六):最简单的办法实现APP欢迎界面