Joa*_*ert 10 syntax scala tuples
我想知道最好的方法是什么.
val foo = Some("a")
val bar = Some(2)
def baz(a: String, b: Int) = if((b % 2) == 0) Some(a+","+b) else None
(x zip y) flatMap baz //does not compile of course
(x zip y) flatMap { x => baz(x._1, x._2) } //ugly
Run Code Online (Sandbox Code Playgroud)
我认为Odersky等人.在这个例子中,他们还有另一个技巧来降低噪音.
所以问题是如何在这里打击杂乱,假设你不允许改变baz
(例如def baz(a: (String Int))
)的实现.
not*_*xit 19
这个问题已在这里得到解答:scala tuple拆包
首先,通过部分应用程序将foo设为函数,然后tupled
使用参数列表调用:
(foo _).tupled(myTuple)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3194 次 |
最近记录: |