ตัวเลือก / อาจจะพิมพ์มีประโยชน์ในภาษาแบบไดนามิกหรือไม่


14

Optionalมีประโยชน์ในวิธีที่ชัดเจนในภาษาที่พิมพ์แบบคงที่ แต่ฉันสงสัยว่ามันยังมีประโยชน์ในภาษาแบบไดนามิก โดยปกติจะไม่มีคอมไพเลอร์บอกคุณว่า "เฮ้คุณใช้สิ่งนี้Optional<String>เป็นString" ดังนั้นคุณยังต้องค้นพบข้อผิดพลาดของคุณที่รันไทม์ ฉันมีพื้นหลังการพิมพ์แบบสแตติกและจากมุมมองของฉันฉันไม่เห็นประโยชน์ของOptionalประเภทในภาษาแบบไดนามิก

คำตอบ:


13

จุดอ่อนนั้นไม่แตกต่างจากภาษาแบบไดนามิกทุกประเภท คุณต้องเปิดใช้งานเพื่อค้นหาว่ามีอะไรอยู่ในนั้น ตัวเลือกไม่ได้แตกต่างกันจริงๆในเรื่องนั้น

ตัวเลือกเป็นมากกว่าคำอธิบายประกอบแบบสแตติกที่ค่าอาจมีหรือไม่มีอยู่ พวกเขามีการดำเนินงานที่เกี่ยวข้องกับพวกเขาเช่นกัน กลุ่มของการดำเนินการแมปบนตัวเลือกเป็นหนึ่งในคุณสมบัติที่มีประโยชน์สูงที่ช่วยให้คุณไม่ต้องตรวจสอบความล้มเหลวหลังจากทุกขั้นตอนในห่วงโซ่

แม้ว่าคุณจะได้รับค่าทันที แต่ก็ยังจะให้โปรแกรมเมอร์ทำการตรวจสอบNothingในครั้งแรกที่มันรันและล้มเหลว หากไม่มีตัวเลือกการผลิตนั้นจะเกิดขึ้นเฉพาะในกรณีที่มีnullครั้งแรกที่คุณพบ การอ้างถึงตัวชี้โมฆะจำนวนมากได้รออย่างดื้อรั้นจนกระทั่งผลิตภัณฑ์อยู่ในสนาม


0

ฉันสามารถคุยกับ Objective-C ได้

เนื่องจากภาษาที่พิมพ์แบบไดนามิกผูกล่าช้าการตรวจหา "ทางเลือก" (ไม่ใช่ค่าที่แสดงด้วยnil) จึงเป็นสิ่งที่มีอยู่: หากคุณตรวจสอบประเภทที่รันไทม์คุณจะตรวจสอบnilโดยปริยาย ของหลักสูตรนี้ chainable สิ่งนี้ทำโดยเนื้อแท้เช่นกัน

สำหรับภาษาที่พิมพ์แบบคงที่แนวคิดพิเศษนี้เป็นประโยชน์เพราะพวกเขาต้องใช้การตัดสินใจประเภทในเวลารวบรวม - ภาษาที่พิมพ์แบบไดนามิกสถานการณ์ไม่เคยมี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.