你在哪里拆分长Scala功能签名?
发布时间:2020-12-16 09:19:47 所属栏目:安全 来源:网络整理
导读:一个定义就像 def foo(x: Int) = x + 1 是漂亮和短小,看起来很漂亮,但当签名本身不舒服很长时, def foo[T : Token[T]](x: ArrayBuffer[T],y: T = ArrayBuffer[() = T]): (T,T,BigDecimal) = { // ...} 我不知道在哪里拆分我发现以下所有的东西看起来很尴尬:
一个定义就像
def foo(x: Int) = x + 1 是漂亮和短小,看起来很漂亮,但当签名本身不舒服很长时, def foo[T <: Token[T]](x: ArrayBuffer[T],y: T => ArrayBuffer[() => T]): (T,T,BigDecimal) = { // ... } 我不知道在哪里拆分我发现以下所有的东西看起来很尴尬: def foo( x: Int,y: Int ): Int = { // ... } def foo( x: Int,y: Int ): Int = { // ... } def foo( x: Int,y: Int ): Int = { // ... } def foo( x: Int,y: Int ): Int = { // ... } 但是,考虑到我将不得不习惯其中的一个,这对我的队友造成的伤害最小? 解决方法
Scala style guide没有什么可说的.实际上它建议使用参数较少的方法:-).
对于函数调用,它建议拆分,以便每个后续行与第一个括号对齐: foo(someVeryLongFieldName,andAnotherVeryLongFieldName,"this is a string",3.1415) 在你个人情况下,我会根据“保持一样的东西”分裂规则: def foo[T <: Token[T]] (x: ArrayBuffer[T],y: T => ArrayBuffer[() => T]) : (T,BigDecimal) = { // ... } 所以参数在一行上,返回类型在一行上,类型限制在一行上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |