为什么Scala中没有StringBuilder.+ =(String)?

Sas*_*a O 9 types scala

这种行为似乎被破坏了(我使用的是Scala 2.9.1)

var b= new StringBuilder
Run Code Online (Sandbox Code Playgroud)

这些都可以:

b+='a'
b.append('b') 
b.append("de")
Run Code Online (Sandbox Code Playgroud)

这会产生编译错误:

b+="de"
Run Code Online (Sandbox Code Playgroud)

任何想法为什么只有StringBuilder#+ =(c:Char)存在而StringBuilder#append(c:Char)和StringBuilder#append(s:String)幸福地共存?声明和实现StringBuilder#+ =(s:String)有什么问题?

它是疏忽还是Scala类型系统中的一些更深层次的问题?

Jea*_*let 24

试试b ++= "de".A String被认为是Chars 的集合.

  • 这就是为什么你必须使用不同的方法. (2认同)