ตอบกลับล่าช้า แต่ฉันคิดว่ามันเพิ่มสิ่งใหม่ในหัวข้อนี้
ไม่มีคำตอบก่อนหน้านี้ที่ได้ตอบคำถามเดิม บางคนพยายามที่จะแสดงให้เห็นถึงการขาดค่าคงที่ในขณะที่คนอื่น ๆ ได้แสดงวิธีการที่เราสามารถจัดการกับการขาดค่าคงที่ แต่ไม่มีใครให้เหตุผลที่น่าสนใจเพื่อประโยชน์ของค่าคงที่ดังนั้นการขาดนั้นยังไม่ได้อธิบายอย่างถูกต้อง
ค่าคงที่จะมีประโยชน์เพราะจะป้องกันข้อผิดพลาดบางอย่างของรหัสจากการไม่สังเกตเห็น
สมมติว่าคุณมีฐานรหัสขนาดใหญ่พร้อมการอ้างอิงนับร้อยถึง "" บางคนแก้ไขหนึ่งในขณะที่เลื่อนดูรหัสและเปลี่ยนเป็น "" การเปลี่ยนแปลงดังกล่าวจะมีโอกาสสูงที่จะไม่สังเกตเห็นการผลิตซึ่ง ณ จุดนี้อาจทำให้เกิดปัญหาบางอย่างซึ่งแหล่งที่มาจะตรวจจับได้ยาก
OTOH ค่าคงที่ไลบรารีชื่อ EMPTY หากมีข้อผิดพลาดเดียวกันจะสร้างข้อผิดพลาดคอมไพเลอร์สำหรับบางสิ่งเช่น EM PTY
การกำหนดค่าคงที่ของคุณเองยังดีกว่า บางคนยังสามารถแก้ไขการเริ่มต้นโดยไม่ได้ตั้งใจ แต่เนื่องจากการใช้อย่างกว้างขวางผลกระทบของข้อผิดพลาดดังกล่าวจึงยากที่จะสังเกตเห็นได้ยากกว่าข้อผิดพลาดในกรณีใช้ครั้งเดียว
นี่คือหนึ่งในผลประโยชน์ทั่วไปที่คุณได้รับจากการใช้ค่าคงที่แทนที่จะเป็นค่าตามตัวอักษร ผู้คนมักจะตระหนักว่าการใช้ค่าคงที่สำหรับค่าที่ใช้ในสถานที่หลายสิบแห่งช่วยให้คุณสามารถอัปเดตค่านั้นในที่เดียวได้อย่างง่ายดาย สิ่งที่ได้รับการยอมรับน้อยกว่าก็คือสิ่งนี้ยังป้องกันไม่ให้ค่านั้นถูกแก้ไขโดยไม่ตั้งใจเพราะการเปลี่ยนแปลงดังกล่าวจะปรากฏขึ้นทุกที่ ดังนั้นใช่ "" จะสั้นกว่าว่างเปล่า แต่ว่างเปล่าจะปลอดภัยกว่าการใช้ ""
ดังนั้นกลับมาที่คำถามเดิมเราสามารถคาดเดาได้ว่านักออกแบบภาษาอาจไม่ได้ตระหนักถึงประโยชน์นี้ในการให้ค่าคงที่สำหรับค่าตัวอักษรที่ใช้บ่อย หวังว่าเราจะเห็นค่าคงที่ของสตริงใน Java
outputBlah = ""
และเขาอาจชอบsomething == String.Empty
มากกว่าsomething.Length > 0
เช่นกัน (คุณข้ามการตรวจสอบเป็นโมฆะ)