次の 2 つの Scala ファイルがあります。
object ImplicitsHome {
implicit class StringWrapper(val str: String) extends ImplicitsHome with Serializable
}
trait ImplicitsHome {
def str: String
def embelishString: String = {
str.concat("fancy")
}
}
と:
import ImplicitsHome._
class User {
def buildSuperString(str: String): String = {
str.embelishString
}
}
object User {
def main(args: Array[String]): Unit = {
val usr = new User()
val fancy = usr.buildSuperString("hi")
println(fancy)
}
}
私が疑問に思っているのは、embelishString
関数を複数回呼び出す必要がある場合、暗黙的StringWrapper
なクラスの複数のインスタンスを作成することになるのでしょうか?
暗黙的を使用すると String ( ) が渡されるため、これが心配です-関数str
のさまざまな呼び出し間で共有することに注意する必要があるのは「状態」ですか?embelishString