【发布时间】:2016-08-20 00:25:56
【问题描述】:
我正在从 Swift 迁移到 Kotlin,到目前为止我很喜欢它。但是,我习惯于声明这样的方法(假装引用的方法存在并且有效):
// Swift method declaration
func drawCircle(inRect rect: CGRect, antialiased: Bool) {
super.antialiased = antialiased
super.drawCircle(inRect: rect)
}
并这样称呼他们:
drawCircle(inRect:myRect, antialiased: false)
这是精美的自我记录,读起来像英语。然而,在 Kotlin 中,类似的方法是这样的:
fun drawCircle(inRect: Rectangle, antialiased: Boolean) {
super.antialiased = antialiased
super.drawCircle(inRect)
}
使用名为inRect 的变量已经开始听起来很奇怪。但是当我调用它时它变得更糟:
drawCircle(myRect, false)
在这里我们看到了最大的问题:仅通过阅读这一行就可能猜到myRect 是一个矩形,圆圈将在其中绘制。但是,true 是什么?它可能是抗锯齿,是的,但也可能是是否不透明地绘制它,或者是关于是否绘制它的一些切换!无论如何,我可以列举更多为什么 Swift 和 Objective-C 程序员喜欢他们的方法调用标签的原因,但我已经说明了我的观点。
有什么方法可以在 Kotlin 中的方法 call 上启用标签?
【问题讨论】:
标签: kotlin self-documenting-code