kotlin学习之顶层函数

像我们在做项目的过程中总会用到一些工具类,有的是处理字符串的有的是处理其他数据的,往往这些方法都不会写在某个功能模块的类里,而是写在单独的什么Util这些工具类中,往往这些方法或函数会声明成static的方法或函数,这样我们可以在处理相关数据的时候去直接不实例化而进行调用,那么在kotlin中有一种写法叫做顶层函数,这类函数一般定义在一个单独的类文件中,我们也可以为他们指定在java中调用时的类名称。如下

@file:JvmName("StringFunctions")

package com.lmm.test.kotlin.kotlintest

import java.lang.StringBuilder

fun <T> joinString(
    collection: Collection<T>,
    separator: String = ", ",
    prefix: String = "",
    postfix: String = ""
): String {
    val stringBuilder = StringBuilder(prefix)
    for ((index, element) in collection.withIndex()) {
        if (index > 0) stringBuilder.append(separator)
        stringBuilder.append(element)
    }
    stringBuilder.append(postfix)
    return stringBuilder.toString()
}

代码中提到的@file:JvmName("StringFunctions")这种语法就是会生成java中需要调用的时候用的类名,这种写法叫做注解。

在java中调用方式如下

import package com.lmm.test.kotlin.kotlintest.StringFunctions;
StringFunctions.joinString(...) //参数对照定义中来

说点什么

avatar
  Subscribe  
提醒