如何在Kotlin中创建和调用扩展功能

时间:2020-10-19 03:17:55

标签: kotlin

fun main(args: Array<String>) {
    val comingvalue = "\"6340040278031835\"".replace("[^0-9]".toRegex(), "");
    print(getAuthDigits(comingvalue))
}

fun getAuthDigits( number :String?): String? {
    return if (number?.length ?: 0 < 14) {
        null
    } else {
        number?.substring(10, 14)
    }
}

这是我在main方法中调用的函数。有人可以建议如何创建扩展函数以及如何使用main输入参数调用它的comingvalue方法吗?

2 个答案:

答案 0 :(得分:1)

fun String.getAuthDigits(): String? {
    return if (this.length ?: 0 < 14) {
        null
    } else {
        this.substring(10, 14)
    }
}

并像下面这样称呼

fun main(args: Array<String>) {
    val comingvalue = "\"6340040278031835\"".replace("[^0-9]".toRegex(), "");
    print(comingvalue.getAuthDigits())
}

答案 1 :(得分:0)

如果这是唯一调用该函数的位置,则最好内联编写。

如果不满足条件,则可以使用takeIf()返回null

fun main() {
    val authDigits: String? = """"6340040278031835""""
        .takeIf { it.length >= 14 }?.substring(10, 14)

    println(authDigits)
}

输出:

8031