如何在Scala中获取对字符串的引用并通过修改此引用来修改原始字符串?

时间:2013-03-24 12:16:49

标签: scala reference value-type

据我所知,Scala中的字符串是值类型:

var a = "hello"
var b = a
b = "hi"

-

println(a)   // hello
println(b)  // hi

我想要指向b并将代码设置为打印

hi
hi

这可能吗?

2 个答案:

答案 0 :(得分:3)

警告:这是非常糟糕的功能样式

您的ab是字符串。你想要的是字符串的引用

class StringRef(var s:String)  

val a = new StringRef("hello")
val b = a
b.s = "Hi"
println(a.s)   // Hi
println(b.s)   // Hi

答案 1 :(得分:2)

你不能这样做,因为在Java/Scala everything is assigned-by-value。您不能指定变量来直接引用另一个变量。

相反,您可以将两个变量分配给可变对象包含相同的参考值。