我有以下代码:
def a = f(aa)
def b = f(bb)
def c = f(cc)
def d = f(dd)
Run Code Online (Sandbox Code Playgroud)
是否有解决方案来删除样板,即显式调用 f
您可以使用标准库执行以下操作:
val List(a,b,c,d) = List(aa,bb,cc,dd).map(f)
Run Code Online (Sandbox Code Playgroud)
它使用模式匹配来分配左侧的值,如果两个Lists的长度不同,则会在运行时失败.
Scalaz有一个更安全的类型选项,它使用元组来确保左边和右边的值的数量是相同的(在编译时检查):
import scalaz._, Scalaz._
val (a,b,c,d) = (aa,bb,cc,dd).map(f)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |