Kotlin学习篇(2)—— Kotlin的函数

本文详细探讨了Kotlin的函数特性,包括定义、表达式函数体、命名参数、默认参数值、顶层函数、扩展函数、可变参数、展开运算符、集合操作、键值对处理、字符串与正则表达式处理,以及与Lambda表达式相关的函数,如maxBy、filter、map等,展示了Kotlin函数的强大与灵活性。
摘要由CSDN通过智能技术生成

1. 定义一个函数

fun max(a: Int, b: Int): Int {
   
    return if (a > b) a else b
}

函数的声明以关键字 fun 开始,函数名称紧随其后:这个例子中函数名称是
max ,接下来是括号括起来的参数列表。参数列表的后面跟着返回类型,它 之间用一个冒号隔开。
在这里插入图片描述

2. 表达式函数体

函数体由单个表达式构成的函数,可以去掉花括号和return语句。

fun min(a : Int, b: Int ): Int = if(a<b) a else b

还可以进一步简化max函数,省略返回类型(只有表达式体函数的返回值类型可以省略)

fun min(a : Int, b: Int ) = if(a<b) a else b

3. 更简洁的使用函数

demo: 更改默认的toString打印。

fun<T> joinToString(collection : Collection<T>,
                    separator : String,
                    prefix : String,
                    postfix : String
):String{
   
    val result = StringBuilder(prefix)              //开始符

    for( (index,element) in collection.withIndex()){
   
        if(index > 0) result.append(separator)      //分割符
        result.append(element)                      //添加数据
    }
    result.append(postfix)                          //结束符
    return result.toString()
}   

结果:

val list1 = listOf(1,2,3)
    println( joinToString(list1,";","(",")" ))
    
 //输出:(1;2;3)   

现在我们来修改这个函数,让它的调用更加简洁

3.1 命名参数

  • 可以显式的标明一些参数的名称,如果在调用一个函数时,指明了一个参数的名称,为了避免混淆,它之后的所有参数都需要标明名称
  • 在用命名参数来声明函数后,在调用时可以按你自己想要的任意顺序给定参数值
 val list1 = listOf(1,2,3)
    println( joinToString(list1,separator = ";",prefix = "(",postfix = ")" ))

3.2 默认参数值

Kotlin中可以在声明参数时设置默认参数值。

优点:避免创建重载的函数

//给参数设置默认值
fun<T> joinToString(collection : Collection<T>,
                    separator : String = ",",
                    prefix : String = "[",
                    postfix : String = "]"
)

现在就可以用所有参数来调用这个函数,或者省略部分函数。

 println( joinToString(list1,separator = ";",prefix = "(",postfix = ")" ))
    println(joinToString(list1))
    println(joinToString(list1,";"))
    
//结果
(1;2;3)
[1,2,3]
[1;2;3]

注意:当你从Java中调用Kotlin函数的时候,必须显示的指定所有的参数值。

4. 顶层函数

Java 作为 门面向对象的语言,需要所有的代码都写作类的函数。

Kotlin中,可以把函数直接放到代码文件的顶层,不用从属于任何的类。

package dataUtil

fun min(a : Int, b: Int ): Int =<
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值