10

この動作は壊れているようです(私はScala 2.9.1を使用しています)

var b= new StringBuilder

これらはOKです:

b+='a'
b.append('b') 
b.append("de")

これにより、コンパイルエラーが発生します。

b+="de"

StringBuilder#+ =(c:Char)だけが存在するのに、StringBuilder#append(c:Char)とStringBuilder#append(s:String)の両方がうまく共存する理由について何か考えはありますか?StringBuilder#+ =(s:String)を宣言して実装することの何が問題になっていますか?

それはScala型システムの見落としですか、それとももっと深い問題ですか?

4

1 に答える 1

25

試してみてくださいb ++= "de"。AStringCharsのコレクションと見なされます。

于 2012-07-24T18:52:18.180 に答える