ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kotlin学习之函数

2022-06-02 21:32:10  阅读:243  来源: 互联网

标签:函数 Int Kotlin sum args 学习 println fun main


函数定义

fun main(args: Array<String>) {
    println(sum(1, 2))
}
//函数定义
fun sum(a: Int, b: Int): Int {
    return a + b
}

默认参数

fun main(args: Array<String>) {
    println(sum())
}
//包含默认参数
fun sum(a: Int = 0, b: Int = 0): Int {
    return a + b
}

参数可以有默认值,可以减少很多重载的方法。反编译结果为

点击查看代码
public final class FirstDemoKt {
   public static final void main(@NotNull String[] args) {
      Intrinsics.checkParameterIsNotNull(args, "args");
      int var1 = sum$default(0, 0, 3, (Object)null);
      System.out.println(var1);
   }

   public static final int sum(int a, int b) {
      return a + b;
   }

   // $FF: synthetic method
   public static int sum$default(int var0, int var1, int var2, Object var3) {
      if ((var2 & 1) != 0) {
         var0 = 0;
      }

      if ((var2 & 2) != 0) {
         var1 = 0;
      }

      return sum(var0, var1);
   }
}

具名参数

fun main(args: Array<String>) {
    println(sum(b = 2, a = 3))
}

fun sum(a: Int, b: Int): Int {
    return a + b
}

参数不仅可以按照位置传递,也可以按照名称传递。

可变参数

fun main(args: Array<String>) {
    println(sum(1, 2, 3))
    val nums = intArrayOf(1, 2, 3)
    println(sum(*nums))//解构赋值
}
//包含可变参数
fun sum(vararg nums: Int): Int {
    var sum = 0
    for (num in nums) {
        sum += num
    }
    return sum
}

lambda表达式参数

fun main(args: Array<String>) {
    //第一种方式
    var ret = calc(1, 2, { x, y -> x + y })
    println(ret)
    //第二种方式
    ret = calc(1, 2) { x, y ->
        x + y
    }
    println(ret)
}
//包含lambda表达式参数
fun calc(a: Int, b: Int, oper: (x: Int, y: Int) -> Int): Int {
    return oper(a, b)
}

如果最后一个参数是lambda表达式,那么既可以在括号内传入,也可以在括号外传入。

fun main(args: Array<String>) {
    intArrayOf(1, 5, 9)
        .filter { it > 5 }
        .map { it * it }
        .forEach { println(it) }
}

kotlin中数组和集合提供的很多方法都是这种格式,使用括号外传参的方式更加的友好,IDE也是优先选择这种。

内联函数

fun main(args: Array<String>) {
    println(sum(1, 2))
}
//内联函数定义
inline fun sum(a: Int, b: Int): Int {
    return a + b
}

内联函数表示直接将函数的方法体内容内联到调用方,相当于

fun main(args: Array<String>) {
    val a = 1
    val b = 2
    println(a + b)
}

参考

Kotlin 教程
学习 Kotlin

标签:函数,Int,Kotlin,sum,args,学习,println,fun,main
来源: https://www.cnblogs.com/strongmore/p/16324354.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有