Kotlin基础教程-函数
来源:互联网 发布:c语言中的enum 编辑:程序博客网 时间:2024/05/16 13:06
函数
在之前的文章中,或多或少的介绍过函数的一些基本概念,这里不想再重头讲,只说一些之前没遇到过的。
中缀符号
关键字:infix
infix fun Int.getMin(x: Int): Int { val result = if (this > x) x else this return result}fun main(args: Array<String>) { val a: Int = 2 println(a getMin 3) println(a.getMin(3))}
表达式函数
fun double(x: Int): Int = x * 2
因为函数返回表达式,可以省略大括号。
局部函数
fun testDoctorq(name: String) { println("Outer Fun $name") fun testDoctorq(name: String, age: Int) { println("Inner Fun $name") } testDoctorq(name, 28)}fun main(args: Array<String>) { testDoctorq("doctorq")}
尾递归函数
在需要递归的地方,使用循环解决,防止堆栈溢出。
关键字:tailrec
tailrec fun findFixPoint(x: Double = 1.0): Double = if (x == Math.cos(x)) x else findFixPoint(Math.cos(x))
实际执行的是如下代码:
private fun findFixPoint(): Double { var x = 1.0 while (true) { val y = Math.cos(x) if ( x == y ) return y x = y }}
定义尾递归函数要注意的地方是,最后一个操作必须调用自己。而且递归调用代码后面不能再有其他操作。
阅读全文
0 0
- Kotlin基础教程-函数
- Kotlin基础教程-内联函数
- Kotlin基础教程-高阶函数和lambda表达式
- Kotlin基础教程-HelloWorld
- Kotlin基础教程-基础语法
- Kotlin基础教程-风格
- Kotlin基础教程-基本数据类型
- Kotlin基础教程-包
- Kotlin基础教程-接口
- Kotlin基础教程-扩展
- Kotlin基础教程-数据对象
- Kotlin基础教程-泛型
- Kotlin基础教程-嵌套类
- Kotlin基础教程-枚举类
- Kotlin基础教程-代理
- Kotlin基础教程-代理属性
- Kotlin基础教程-协程
- Kotlin基础教程-Ranges表达式
- JDK1.8 连接Access数据库
- MyBatis中if标签注意问题
- [练习]:LCA练习2
- Wireshark基本介绍和学习TCP三次握手
- Linux中常用操作命令
- Kotlin基础教程-函数
- height、clientHeight、scrollHeight、offsetHeight区别
- hbuilder项目总结:localstorage本地储存
- git:搭建远程仓库
- Mybatis中的#和$的区别
- 二叉树的下一个节点(java版)
- Ubuntu16.04中使用XMind导致Java进程溢出
- 常见几种算法(待完善)
- Linux 中的Core Dump设置与使用