在某些方法中,我想强制命名参数。原因是未指定参数顺序的自动生成代码(并将保持这种状态)。
我能得到的最接近的是
private val _forceNamed: Object = new Object()
def doSomething(forceNamed: Object = _forceNamed, arg1: String, arg2: String, ...): Unit = {
if (forceNamed != _forceNamed) {
throw Exception(something)
}
// actually do stuff
}
然而,这只在运行时失败,而在编译时失败会更好。
最佳答案
为此,我们在代码库中有这个:
object `(Please use explicitly named arguments)`
def foo(
`(Please use explicitly named arguments)`:
`(Please use explicitly named arguments)`.type =
`(Please use explicitly named arguments)`,
namedArg1: Int,
namedArg2: String,
...
) = ...
关于scala - 是否可以在 Scala 中强制命名参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41513569/