// 减法
operator fun Strinig.minus(right: Any?): String {
return this.replaceFirst(right.toSring(), "")
}
// 因为上面的函数只有一行,可以写的简单点
// operator fun String.minus(right: Any?)
// = this.replaceFirst(right.toString(), "")
// 乘法
operator fun times(right: Int): String {
return (1..right).joinToString(""){this}
}
// 除法
operator fun div(right: Any?): Int {
// 将输入转为String, null也可以转成String,这是合法的 空转换为"null"
val right = right.toString()
// 滑窗函数windowed
// 在this上滑动,滑窗的大小为right.length,每次滑动1个
return this.windowed(right.length, 1) {
// 看看滑动获取的结果是不是right, 如果为true,就调用count计数
it == right
// windowed 返回的类型是List<Boolean>
// count为lambal表达式,它接收一个Boolean,再返回一个Boolean。
// 在这个实例中,
// 计数为true的个数, 这个样数出来就是字符right在this中出现的个数
// [false, false, ... true, false]
}.count{it}
}
fun main() {
val value = "HelloWorld"
println(value - "World") // 输出"Hello"
val star = "*"
println("*" * 20) // 输出20个"*"
println(val/l) // 输出2
}
Kotlin 表达式 - 案例 为String实现四则运算
最新推荐文章于 2024-10-05 19:57:22 发布