gpt4 book ai didi

kotlin - 中缀表示法和 with(...) 不能按我的预期工作

转载 作者:行者123 更新时间:2023-12-04 23:41:30 24 4
gpt4 key购买 nike

考虑以下场景:
我有一个类测试

class Test() {
infix fun say(msg: String) = println(msg)
}

和一个主要方法
fun main(args: Array<String>) {
val test = Test()

test say "Hello World!" //Works

with(test) {
say "Goodbye World!" //Does not work
say("Hello again!") //Works
}
}

如您所见,我正在测试中缀表示法。考虑 with(...)允许您处理在 with 块中作为参数传递的对象
无需通过点表示法访问其成员,我希望中缀表示法能够像我在上面的示例中展示的那样工作。

不幸的是,这行不通,是否有原因这行不通?这是一个错误还是仅仅是一个限制?或者也许我不是在解释 with(...)功能正常吗?

最佳答案

中缀表示法是关于它使用方式的语法。它适用于左侧的对象和右侧的参数。

使用时 with左侧不再有对象标记,因此中缀表示法的特殊语法不再有效。您必须退回到常规函数表示法。

关于kotlin - 中缀表示法和 with(...) 不能按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35976405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com