梳理学习Kotlin,Function的用法

梳理学习Kotlin,Function的用法,第1张

示例:

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);
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/722213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存