Kotlin基础教程-函数

xiaoxiao2021-02-27  194

函数

在之前的文章中,或多或少的介绍过函数的一些基本概念,这里不想再重头讲,只说一些之前没遇到过的。

中缀符号

关键字: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 } }

定义尾递归函数要注意的地方是,最后一个操作必须调用自己。而且递归调用代码后面不能再有其他操作。

转载请注明原文地址: https://www.6miu.com/read-11275.html

最新回复(0)