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

如何在Scala中获取对字符串的引用,并通过修改该引用修改原始字符串?,scala,reference,value-type,Scala,Reference,Value Type,据我所知,Scala中的字符串是值类型: var a = "hello" var b = a b = "hi" - 我想让a指向b,在上面打印代码 hi hi 这可能吗?警告:这是非常糟糕的功能样式 您的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) // H

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

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

我想让a指向b,在上面打印代码

hi
hi
这可能吗?

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

您的
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
警告:这是非常糟糕的功能样式

您的
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

你不能这样做,因为你在家里。不能指定一个变量直接引用另一个变量


相反,您可以将两个变量分配给一个可变对象,使其包含相同的引用值。

您不能这样做,因为在中。不能指定一个变量直接引用另一个变量


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

您的问题的标题混淆了。修改引用与修改值是分开的。此外,Scala使用Java的
字符串
,它们是不可变的。修改引用与修改值是分开的。此外,Scala使用Java的
字符串
,它们是不可变的。