sol*_*oth 4 scala string-interpolation
为什么带有字符串插值前缀的空字符串在后跟语句时无法编译?
例如
val test = s""
println("hello")
Run Code Online (Sandbox Code Playgroud)
无法编译时出错
error: value println is not a member of String
possible cause: maybe a semicolon is missing before `value println'?
       println("hello")
Run Code Online (Sandbox Code Playgroud)
但以下所有编译正常:
val test = s""
Run Code Online (Sandbox Code Playgroud)
val test = ""
println("hello")
Run Code Online (Sandbox Code Playgroud)
def test() { s"" }
println("hello")
Run Code Online (Sandbox Code Playgroud)
val test = s" "
println("hello")
Run Code Online (Sandbox Code Playgroud)
它是一个解析器错误,在去年1月修复,因此在最新的2.11.x版本中应该没问题.
这是错误报告:https://issues.scala-lang.org/browse/SI-7919.相关评论(Paul Phillips)是:
在完全空插值字符串后丢失换行符号.如果是
s"1",或分号而不是换行符,或两个换行符,或空字符串后面的注释,则编译.Run Code Online (Sandbox Code Playgroud)class A { s"" 5 }
这是解决它的PR:https://github.com/scala/scala/pull/3411
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           391 次  |  
        
|   最近记录:  |