การป้องกันตัวชี้ที่เป็นโมฆะ (อังกฤษ: null safety) หรืออาจเรียกว่าการป้องกันวอยด์ (อังกฤษ: void safety) เป็นคุณสมบัติของภาษาโปรแกรมเชิงวัตถุ ว่าตัวชี้ใดๆ (หรือ reference ไปยังวัตถุใดๆ) จะไม่เป็นตัวชี้ที่เป็นโมฆะ (อาจเรียกว่า void หรือ null) เพราะถ้าหากโปรแกรมพยายามเรียกดูข้อมูลที่อยู่ที่ตัวชี้ (หรือ reference) เหล่านั้น จะสามารถทำให้เกิดเป็นสิ่งผิดปรกติ และ/หรือ ทำให้โปรแกรมล่มได้
การป้องกันตัวชี้ที่เป็นโมฆะคือการรับประกันเวลาคอมไพล์ ว่าจะไม่มีการขอดูข้อมูลที่อยู่ที่ตัวชี้ที่เป็นโมฆะโดยเด็ดขาด
ในภาษาโปรแกรม
ความพยายามในช่วงแรกที่จะรับประกันการป้องกันตัวชี้ที่เป็นโมฆะคือการออกแบบ ภาษาSelf
ภาษาไอเฟล มีการป้องกันตัวชี้ที่เป็นโมฆะตามมาตรฐาน ISO - ECMA ของมัน การป้องกันตัวชี้ที่เป็นโมฆะของมันได้ถูกนำมาใช้ใน EiffelStudio โดยเริ่มจาก เวอร์ชัน 6.1 และใช้วากยสัมพันธ์สมัยใหม่ที่ขึ้นต้นด้วย เวอร์ชัน 6.4
ภาษา Spec# ซึ่งเป็นภาษาวิจัยจาก Microsoft Research มีแนวคิดเรื่อง "ชนิดข้อมูลที่ไม่สามารถเป็นโมฆะได้" ซึ่งกล่าวถึงการป้องกันตัวชี้ที่เป็นโมฆะ
ถึงแม้ว่าภาษาบนระบบดอตเน็ตและดอตเน็ตเฟรมเวิร์กมักจะมีการป้องกันตัวชี้ที่เป็นโมฆะ ภาษา F# ได้รับการยกเว้นจากการป้องกันตัวชี้ที่เป็นโมฆะ
ภาษาซีชาร์ปจะตรวจสอบการป้องกันตัวชี้ที่เป็นโมฆะในเวลาคอมไพล์ตั้งแต่เวอร์ชัน 8 อย่างไรก็ตาม เพื่อให้เข้ากันได้กับภาษาเวอร์ชันที่เก่ากว่านั้น ผู้ใช้จะต้องเลือกใช้คุณลักษณะนี้ด้วยตนเอง แบบต่อโปรเจ็กต์หรือต่อไฟล์
ภาษาดาร์ต ของ Google ตรวจสอบการป้องกันตัวชี้ที่เป็นโมฆะตั้งแต่เวอร์ชัน 2.0 ในเดือนสิงหาคม 2018
ยังมีภาษาอื่นๆ ที่ใช้"ชนิดข้อมูลที่ไม่สามารถเป็นโมฆะได้"โดยปริยาย เช่น ภาษาคอตลิน (รัสเซีย: Ко́тлин) ของบริษัท JetBrains,ภาษารัสต์, และ (อังกฤษ: Swift) ของ Apple.
อ้างอิง
- Syme, Don. "Quote of the Week: "What can C# do that F# cannot?"". สืบค้นเมื่อ 7 September 2018.
- "Nullable reference types | Microsoft Docs". สืบค้นเมื่อ 12 March 2021.
- Moore, Kevin (2018-08-07). "Announcing Dart 2 Stable and the Dart Web Platform". Dart. สืบค้นเมื่อ 2018-08-08.
- "Sound null safety | Dart". สืบค้นเมื่อ 12 March 2021.
- "Null safety—Kotlin". สืบค้นเมื่อ 12 March 2021.
- "Defining an Enum - The Rust Programming Language". doc.rust-lang.org. สืบค้นเมื่อ 2021-06-26.
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
karpxngkntwchithiepnomkha xngkvs null safety hruxxaceriykwakarpxngknwxyd xngkvs void safety epnkhunsmbtikhxngphasaopraekrmechingwtthu watwchiid hrux reference ipyngwtthuid caimepntwchithiepnomkha xaceriykwa void hrux null ephraathahakopraekrmphyayameriykdukhxmulthixyuthitwchi hrux reference ehlann casamarththaihekidepnsingphidprkti aela hrux thaihopraekrmlmid karpxngkntwchithiepnomkhakhuxkarrbpraknewlakhxmiphl wacaimmikarkhxdukhxmulthixyuthitwchithiepnomkhaodyeddkhadinphasaopraekrmkhwamphyayaminchwngaerkthicarbpraknkarpxngkntwchithiepnomkhakhuxkarxxkaebb phasaSelf phasaixefl mikarpxngkntwchithiepnomkhatammatrthan ISO ECMA khxngmn karpxngkntwchithiepnomkhakhxngmnidthuknamaichin EiffelStudio odyerimcak ewxrchn 6 1 aelaichwakysmphnthsmyihmthikhuntndwy ewxrchn 6 4 phasa Spec sungepnphasawicycak Microsoft Research miaenwkhideruxng chnidkhxmulthiimsamarthepnomkhaid sungklawthungkarpxngkntwchithiepnomkha thungaemwaphasabnrabbdxtentaeladxtentefrmewirkmkcamikarpxngkntwchithiepnomkha phasa F idrbkarykewncakkarpxngkntwchithiepnomkha phasasicharpcatrwcsxbkarpxngkntwchithiepnomkhainewlakhxmiphltngaetewxrchn 8 xyangirktam ephuxihekhaknidkbphasaewxrchnthiekakwann phuichcatxngeluxkichkhunlksnanidwytnexng aebbtxopreckthruxtxifl phasadart khxng Google trwcsxbkarpxngkntwchithiepnomkhatngaetewxrchn 2 0 ineduxnsinghakhm 2018 yngmiphasaxun thiich chnidkhxmulthiimsamarthepnomkhaid odypriyay echn phasakhxtlin rsesiy Ko tlin khxngbristh JetBrains phasarst aela xngkvs Swift khxng Apple xangxingSyme Don Quote of the Week What can C do that F cannot subkhnemux 7 September 2018 Nullable reference types Microsoft Docs subkhnemux 12 March 2021 Moore Kevin 2018 08 07 Announcing Dart 2 Stable and the Dart Web Platform Dart subkhnemux 2018 08 08 Sound null safety Dart subkhnemux 12 March 2021 Null safety Kotlin subkhnemux 12 March 2021 Defining an Enum The Rust Programming Language doc rust lang org subkhnemux 2021 06 26