main函数
fun main(args: Array<String>) {}
完整函数
fun fib(n: Int): Long {
return if (n < 2) 1 else fib(n - 1) + fib(n - 2)
}
简化返回值函数
fun fib(n: Int): Long = if (n < 2) 1 else fib(n - 1) + fib(n - 2)
参数带默认值
fun fib(n: Int = 5): Long = if (n < 2) 1 else fib(n - 1) + fib(n - 2)
通过默认参数实现了Java重载的效果
fun fetch(preloadId: String, page: Int, size: Int = 20) {}
fetch(1, 2, 3)
fetch(size = 1)
fetch(1, 2)
扩展函数
fun Date.plusDays(n: Int) = Date(this.time + n * 86400000)
扩展函数调用静态函数
fun Date.print() = println("Date: $this")
// 可链式调用
Date().plusDays(1).print()
中缀函数
infix fun <A, B> A.to(that: B) = Pair(this, that)
*** 作符函数( *** 作符函数有明确范围,当输入operator fun Int.有所有支持 *** 作)
operator fun Int.times(str: String) = str.repeat(this)
其中中缀, *** 作符函数为扩展函数的实现方式,也就是静态内部类,参数默认值,则通过完整函数和生产帮助函数的参数达到效果
public final void fetch(@NotNull String preloadId, int page, int size) {
Intrinsics.checkNotNullParameter(preloadId, "preloadId");
System.out.println(preloadId);
}
// $FF: synthetic method
public static void fetch$default(Practice var0, String var1, int var2, int var3, int var4, Object var5) {
if ((var4 & 4) != 0) {
var3 = 20;
}
var0.fetch(var1, var2, var3);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)