我在解决以下代码差异时遇到了问题.
val l1 = List('a', 'b')
val l2 = List(1, 2, 3, 4)
val x = l1.flatMap(v1 => l2.map(b => "" + v1 + b))
print(x)
//List(a1, a2, a3, a4, b1, b2, b3, b4)
Run Code Online (Sandbox Code Playgroud)
.
val l1 = List('a', 'b')
val l2 = List(1, 2, 3, 4)
val x = l1.flatMap(v1 => l2.map(_ => "" + v1 + _))
print(x)
//List(One$$$Lambda$13/398887205@1554909b, One$$$Lambda$13/398887205@6bf256fa, One$$$Lambda$13/398887205@6cd8737, One$$$Lambda$13/398887205@22f71333, One$$$Lambda$13/398887205@13969fbe, One$$$Lambda$13/398887205@6aaa5eb0, One$$$Lambda$13/398887205@3498ed, One$$$Lambda$13/398887205@1a407d53)
Run Code Online (Sandbox Code Playgroud)
不应该_和b表现一样吗?
相当于b => "" + v1 + b使用下划线只是"" + v1 + _.
_ => "" + v1 + _而是等同于_ => (b => "" + v1 + b)或a => (b => "" + v1 + b).
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |