-
这就是语言的语法,必须用
where
,它们必须位于函数头的末尾,而不是单个约束的位置。
-
任何显式返回类型也在
哪里
限制条件:
fun <T> ensureTrailingPeriod(seq: T): Unit where T : CharSequence, T : Appendable {
if (!seq.endsWith('.')) {
seq.append('.')
}
}
作为参考,您可以在
Kotlin grammar
也:
function (used by memberDeclaration, declaration, topLevelObject)
: modifiers "fun"
typeParameters?
(type ".")?
SimpleName
typeParameters? valueParameters (":" type)?
typeConstraints
functionBody?
;
这清楚地告诉您函数声明的不同部分的顺序。首先,有修饰符(可见性、中缀等),然后
fun
关键字,然后是类型参数,如果函数是扩展名,则是接收器类型,函数的名称、参数列表、可选返回类型,最后是函数主体之前的类型约束。