หลีกเลี่ยงเครื่องหมายดอลลาร์ในการแก้ไขสตริง


120

ฉันจะหลีกเลี่ยงเครื่องหมายดอลลาร์ในการแก้ไขสตริงได้อย่างไร

def getCompanion(name: String) = Class.forName(s"my.package.$name\$")

// --> "error: unclosed string literal"

คำตอบ:


178

เพิ่มเป็นสองเท่า

scala> val name = "foo"
name: String = foo

scala> s"my.package.$name$$"
res0: String = my.package.foo$

4
ชอบที่จะเห็นลิงก์ไปยังเอกสารบางส่วนในเอกสารนี้ อาจมีกรณีอื่นนอกเหนือจากกรณีที่แน่นอนที่นี่และคำตอบสามารถช่วยผู้คนได้มากขึ้น
Martin Hallén

ฉันไม่พบอะไรเกี่ยวกับเรื่องนี้ในเอกสาร มี PR เพื่อเพิ่ม: github.com/scala/docs.scala-lang/pull/1531
amoebe

1
ขณะนี้เอกสารอยู่ที่: docs.scala-lang.org/overviews/core/…ไม่แน่ใจว่ามีคดีอะไรอีกบ้าง?
amoebe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.