交換:
scala> val a = "hello\nworld"
a: String =
hello
world
scala> val b = """hello
| world"""
b: String =
hello
world
scala> a == b
res0: Boolean = true
ワークシート:
val a = "hello\nworld" //> a : String = hello
//| world
val b = """hello
world""" //> b : String = hello
//| world
a == b //> res0: Boolean = true
通常の Scala コード:
val a = "hello\nworld"
val b = """hello
world"""
println(a)
println(b)
println(a == b)
出力:
hello
world
hello
world
false
REPL とワークシートでは true になるのに、通常の Scala コードでは false になるのはなぜですか?
興味深いことに、b
よりも 1 文字長いように見えるa
ので、Unicode 値を出力しました。
println(a.map(_.toInt))
println(b.map(_.toInt))
出力:
Vector(104, 101, 108, 108, 111, 10, 119, 111, 114, 108, 100)
Vector(104, 101, 108, 108, 111, 13, 10, 119, 111, 114, 108, 100)
複数行の文字列リテラルにはプラットフォームに依存する値があるということですか? WindowsでEclipseを使用しています。