kotlin : infix函数(中缀方法)

参考:

Kotlin简明学习,infix函数

val map = mapOf(
    1 to "one",
    2 to "two",
    3 to "three"
)

点击to 可看到是一个中缀方法:

public infix fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)

infix函数(中缀方法):

infix函数(中缀方法)需要几个条件:

  • 只有一个参数

  • 在方法前必须加infix关键字

  • 必须是成员方法或者扩展方法

测试一:


//扩展函数
infix fun Int.add(x: Int): Int {
    return this + x
}

//成员函数
class Account {
    var balance = 100.0

    infix fun add(amount: Double) = run { this.balance = balance + amount }
}
fun main() {

    println(100 add 200)
    //300

    Account().apply {
        this add 200.00
        println(this.balance)
        //300.0
    }
}

测试二:

fun main() {
    println("北京" 中缀 "上海")
    //啦啦啦,我是中缀函数,实例是:【北京】,我的唯一参数是【上海】

    println(TestInfix().useInfix)
    //啦啦啦,我是中缀函数【TestInfix@24d46ca6】,我的唯一参数是【上海】

}



/**
 *自定义中缀函数--->(扩展函数)
 * 1.使用infix在fun前修饰
 * 2.只能有一个参数(uniqueParam)
 * 3.是二元的的,参数1:实例(北京);参数二:参数
 */
infix fun String.中缀(uniqueParam: String): String =
    "啦啦啦,我是中缀函数,实例是:【$this】,我的唯一参数是【$uniqueParam】"



class TestInfix {
    /**
     *自定义中缀函数--->(成员函数(class中))
     * 1.使用infix在fun前修饰
     * 2.只能有一个参数(uniqueParam)
     */
    infix fun 中缀(uniqueParam: String): String =
        "啦啦啦,我是中缀函数【$this】,我的唯一参数是【$uniqueParam】"

    /**
     * 调用中缀函数
     */
    var useInfix = 中缀("上海")
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值