ในคำศัพท์ Java สัญลักษณ์เป็นสตริงภายใน ซึ่งหมายความว่าตัวอย่างเช่นการอ้างอิงการเปรียบเทียบความเท่าเทียมกัน ( eq
ใน Scala และ==
ใน Java) ให้ผลลัพธ์เช่นเดียวกับการเปรียบเทียบความเท่าเทียมกันตามปกติ ( ==
ใน Scala และequals
ใน Java): 'abcd eq 'abcd
จะคืนค่าจริงในขณะที่"abcd" eq "abcd"
อาจไม่ขึ้นอยู่กับความต้องการของ JVM (ก็ควร สำหรับตัวอักษร แต่ไม่ใช่สำหรับสตริงที่สร้างแบบไดนามิกโดยทั่วไป)
ภาษาอื่น ๆ ที่ใช้สัญลักษณ์ ได้แก่ Lisp (ซึ่งใช้'abcd
เหมือน Scala), Ruby ( :abcd
), Erlang และ Prolog ( abcd
เรียกว่าอะตอมแทนสัญลักษณ์)
ฉันจะใช้สัญลักษณ์เมื่อฉันไม่สนใจโครงสร้างของสตริงและใช้มันเป็นชื่อของบางสิ่งเท่านั้น ตัวอย่างเช่นถ้าฉันมีตารางฐานข้อมูลที่เป็นตัวแทนของซีดีซึ่งมีคอลัมน์ชื่อ "price" ฉันไม่สนใจว่าอักขระตัวที่สองใน "price" คือ "r" หรือเกี่ยวกับการต่อชื่อคอลัมน์ ดังนั้นไลบรารีฐานข้อมูลใน Scala จึงสามารถใช้สัญลักษณ์สำหรับชื่อตารางและคอลัมน์ได้อย่างสมเหตุสมผล