【发布时间】:2019-05-03 17:07:39
【问题描述】:
Kotlin coding conventions 在使用中缀函数一节中说:
仅当一个函数作用于两个扮演相似角色的对象时,才将其声明为中缀。很好的例子:
and、to、zip。不好的例子:add。如果方法改变了接收者对象,则不要将其声明为中缀。
我的第一个问题是:add 是一个坏例子吗?
然后在basic types 的讨论中,它解释了按位运算符是“可以以中缀形式调用的命名函数”,并给出了这个例子(作为更大表达式的一部分):
(1 shl 2)
在我看来,三个 Kotlin 移位操作(shl、shr 和 ushr)似乎违反了编码约定。左右操作数根本不扮演类似的角色。左操作数是原始位模式,右操作数是位模式应该移动多远。
我错过了什么吗?
【问题讨论】:
标签: kotlin coding-style infix-notation