Eri*_*lun 15 lambda scala string-interpolation
这有效
(x => s"$x")
Run Code Online (Sandbox Code Playgroud)
但是这个
(s"${_}")
Run Code Online (Sandbox Code Playgroud)
给
[error] ...: unbound placeholder parameter
[error] (s"${_}")
Run Code Online (Sandbox Code Playgroud)
这只是因为该(s"$_")构造遭受漏洞抽象?
此外: (s"$_")输出完全不同:
[error] ...: invalid string interpolation: `$$', `$'ident or `$'BlockExpr expected
[error] (s"$_")
[error] ^
[error] ...: unclosed string literal
[error] (s"$_")
Run Code Online (Sandbox Code Playgroud)
在我看来,调用字符串插值漏洞是完全正确的.虽然它在大多数情况下都能正常工作,但是有许多边缘情况,它只是不按预期方式工作.这是另一个这种边缘情况的化身.
我不知道s"$_"编译器为什么不接受.前段时间有一个pull请求为模式匹配引入了这种语法:PR 2823
有趣的是,这个PR还包含测试用例,用于测试模式匹配之外的下划线是否会产生错误.
不幸的是,没有进一步的描述为什么这是以它的实现方式实现的.
Som Snytt,实施PR的人在SO上很活跃,希望他能说得更多.
| 归档时间: |
|
| 查看次数: |
1971 次 |
| 最近记录: |