java中的fun函数_使用Kotlin开发Android--常见的fun函数定义

上一篇具体讲了在Android Studio中怎么搭建Kotlin环境的搭建,以及简单的写了一个Hello World的DEMO。

那么今天我们一起来学习一下常见的fun函数定义。我大概定义了11个比较常见的函数,一起来看看,喜欢的话,记得支持一下~~~

返回值为String的类型,代码如下:

/**

* 返回值为String的函数 2017/3/31 14:38

*/

fun hello() : String {

return "Hello world"

}

也可以使用推导式的返回值,代码如下:

/**

* 推导型的返回值为String的函数 2017/3/31 14:38

*/

fun hello1() = "Hello world..."

定义没有返回值的函数,相当于Java的void方法

/**

* 相当于没有返回值的void 2017/3/31 14:42

*/

fun hello3(name:String): Unit {

println("Hello $name") // 直接使用$就可以引用参数 2017/3/31 14:47

}

上述的返回类型Unit是可以省略的,代码如下:

/**

* hello4() = hello3() 2017/3/31 14:48

*/

fun hello4(name:String) {

println("Hello $name")

}

推导式函数,单表达形式

/**

* 推导型函数(单表达形式) 2017/3/31 14:56

* PS: ${} 相当于执行一个小脚本 2017/3/31 14:57

*/

fun hello5(b:Boolean) = if (b) "Hello ${"CMX".replace("MX", "mx")}" else "Hello ${"ZL".replace("L", "l")}"

参数的默认值,代码如下:

/**

* 参数默认值 2017/3/31 15:56

*/

fun hello6(name:String = "CCB") {

println("Hello $name")

}

使用部分参数默认值,代码如下:

/**

* 参数默认值,使用部分参数 2017/3/31 15:59

*/

fun hello7(name:String, age:Int = 12, area:String = "SZ") {

println("Hello $name.")

println("Age is $age.")

println("Area is $area.")

}

使用下面代码进行调用:

hello7("CCB", area = "深圳") // 使用部分默认参数

创建内部函数,代码如下:

/**

* 内部函数 2017/3/31 16:04

*/

fun hello8(name:String = "CCB") {

fun helloSub8(age:Int) {

println("Age is $age.")

}

println("Hello $name.")

helloSub8(12)

}

尾递归函数,代码如下:

/**

* 2017/3/31 16:34

* Kotlin支持一种称为尾递归(tail recursion)的函数式编程方式.这种编程方式,到底是用来干什么的呢?

* 这种方式是基于函数表达式和递归函数,来实现某些基本循环的的算法,采用这种方式可以有效的避免栈溢出的危险。

* 当函数被关键字tailrec修饰,同时满足尾递归(tail recursion)的函数式编程方式的形式时,

* 编译器就会对代码进行优化, 消除函数的递归调用, 产生一段基于循环实现的, 快速而且高效的代码。

*/

tailrec fun hello9(a:Int, b:Int):Unit = if (a + b > 20) println(a + b) else hello9(a + 1, b + 1)

上述使用传统的写法,代码如下:

/**

* 对hello9的传统的写法 2017/3/31 16:39

*/

fun hello10(a:Int, b:Int):Unit {

var tmpA = a

var tmpB = b

while (tmpA + tmpB <= 20) {

tmpA += 1

tmpB += 1

}

println(tmpA + tmpB)

/*

注:

要符合 tailrec 修饰符的要求, 函数必须在它执行的所有操作的最后一步, 递归调用它自身

如果递归调用后还有其他逻辑代码,不能使用尾递归

尾递归不能用在try/catch/finally 结构内

尾递归目前只能用在JVM环境内

*/

}

扩展函数,下面DEMO写的是String的扩展函数,代码如下:

/**

* 为String添加扩展函数 2017/4/1 09:33

*/

fun String.hello11() {

println("CCB")

}

使用下面的代码进行调用,如下:

"CMX".hello11() // String的扩展函数 2017/4/1 09:51

以上写的11个常见的函数定义,应该足够我们应付日常的开发工作了。从目前的函数定义看起来,确实要比Java来得简单易用很多。

更重要的是。。。

可以直接与Java一起使用~

可以直接与Java一起使用~~

可以直接与Java一起使用~~~

所以还是有必要学习一下Kotlin,不说全部替换掉Java,用Kotlin来开发Android,但结合使用还是会提高一定的开发效率。

好了,今天的fun函数定义就告一段落了。希望对想了解的朋友们能有所帮助~

谢谢支持,谢谢~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值