gpt4 book ai didi

kotlin - 中缀函数 : how to avoid parentheses around supplied argument

转载 作者:行者123 更新时间:2023-12-02 12:55:52 25 4
gpt4 key购买 nike

我有以下中缀乐趣

infix fun <T> Boolean.then(lazyValue: () -> T): T?
= if (this) lazyValue() else null
有以下用例
(index > 0) then { data[index - 1].id }
我想将其重写为
index > 0 then { data[index - 1].id }
并避免在 index > 0 周围使用括号。目前它无法在代码中解析。
有什么办法让它工作吗?

最佳答案

不,那行不通。
根据operator precedence table在 Kotlin Grammar 引用中,中缀函数调用的优先级,例如 then在您的情况下,高于比较运算符 < , > , <= , >= .
所以没有括号,像 index > 0 then { ... } 这样的表达式被解析为 index > (0 then { ... })而不是相反。

关于kotlin - 中缀函数 : how to avoid parentheses around supplied argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63811891/

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