据我所知,Scala中的字符串是值类型:
var a = "hello"
var b = a
b = "hi"
-
println(a) // hello
println(b) // hi
我想要指向b并将代码设置为打印
hi
hi
这可能吗?
答案 0 :(得分:3)
警告:这是非常糟糕的功能样式
您的a
和b
是字符串。你想要的是字符串的引用!
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。您不能指定变量来直接引用另一个变量。
相反,您可以将两个变量分配给可变对象包含相同的参考值。