Kotlin基础学习(十二)—— 顶层函数和属性

Kotlin 中的类不能拥有静态成员,即在 Kotlin 中是没有 static 关键字的,所以 Kotlin 中没有静态方法和静态成员。在 Kotlin 中想要表达这种概念,可使用 包级别函数(顶层函数) 和 伴生对象

一、顶层函数

  • Java中有些类包含一堆静态函数,类本身并无意义。
  • 在Kotlin中可以把这些函数直接放到代码文件的顶层,不用从属于任何的类,当在包外访问该函数时,直接import该函数的路径即可。在Java调用时,如 join.kt 文件将被编译名称为 JoinKt.java 的类。这些函数被编译为这个类的静态函数。

所以, Kotlin 中的顶层函数和属性 可用来 替代 Java 中的静态函数和属性

//join.kt  声明一个顶层函数  将函数直接放到代码文件的顶层
@file:JvmName("StringFunctions")  //改变包含Kotlin顶层函数的生成的类的名称 此注解位于包名前面
@JvmOverloads
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()
}

在Java中调用上述顶层函数:

public class Test11 {
    public static void main(String[] args){
        List<Integer> list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(55);
        System.out.println(StringFunctions.joinToString(list,"--"));
    }
}

二、顶层属性

顶层属性:和顶层函数类似,将属性放到文件的顶层

const修饰符

const val UNIX_LINE_SEPARATOR = '\n'  //作为顶层属性
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kotlin 中,函数的参数可以分为两种类型:入参(参数)和出参(返回值)。 出参(返回值)是函数执行后返回给调用者的结果。在 Kotlin 中,通过使用 `fun` 关键字定义函数时,可以在函数签名后面使用冒号 `:` 指定函数的返回类型。例如: ```kotlin fun add(a: Int, b: Int): Int { return a + b } ``` 在上面的例子中,函数 `add` 接受两个整数参数 `a` 和 `b`,并返回它们的和。返回类型 `Int` 指定了函数的出参类型。 对于回调函数,它是一种常见的编程模式,在异步操作中经常使用。在 Kotlin 中,可以通过高阶函数(Higher-Order Function)来实现回调函数的传递。 一个简单的回调函数示例: ```kotlin fun processData(data: String, callback: (String) -> Unit) { // 模拟处理数据的操作 val processedData = data.toUpperCase() // 调用回调函数,传递处理后的结果 callback(processedData) } fun main() { val data = "Hello, world!" processData(data) { result -> println("Processed data: $result") } } ``` 在上述示例中,我们定义了一个名为 `processData` 的函数,接受一个字符串参数 `data` 和一个回调函数 `callback`。回调函数是一个接受字符串参数并不返回任何结果的函数。 在 `main` 函数中,我们调用了 `processData` 函数,并传递了一个 lambda 表达式作为回调函数。这个 lambda 表达式会在 `processData` 函数内部被调用,并打印出处理后的结果。 通过使用回调函数,我们可以在异步操作完成后得到通知,并处理操作的结果。这种模式非常适用于处理长时间运行的操作、网络请求等异步任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值