29. 例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
scala) val r1 = y.toString
r1: String = Hello, World
scala) val r2 = y.toString
r2: String = Hello, World
r1 と r2の結果はここまでは同じ
30. 例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
最初の例と同様に、y を x.append(“, World”) に置き換えてみよう
31. 例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
scala) val r1 = x.append(“, World”).toString
r1: String = Hello, World
32. 例) 参照透過でない場合
scala) val x = new StringBuilder(“Hello”)
x: StringBuilder = Hello
scala) val y = x.append(“, World”)
x: StringBuilder = Hello, World
scala) val r1 = x.append(“, World”).toString
r1: String = Hello, World
scala) val r2 = x.append(“, World”).toString
r2: String = Hello, World, World
変数を式に置き換えたことで結果が変わった -> 変数 y は参照透過でない