ฉันคิดว่าฉันจะออกแบบตัวอักษรที่ "สมบูรณ์แบบ" ได้อย่างไรถ้าฉันจะออกแบบภาษา สำหรับคุณที่ไม่ทราบว่าเป็นช่วงตัวอักษรในคำสั่งที่แสดงถึงช่วงของค่าเช่น 1-4 พวกมันถูกใช้บ่อยที่สุดใน for / foreach loops
ดูเหมือนจะมีปัญหาสองข้อที่ควรคำนึงถึง
การสนับสนุนสำหรับช่วงที่รวมและไม่เหมือนใครการตรึงบน +1 หรือ -1 ถึงจุดสิ้นสุดดูเหมือนว่าจะผิดพลาดและไม่มีข้อผิดพลาด
สนับสนุนการก้าวดังนั้นคุณสามารถสร้างช่วงของเลขคู่หรือคี่ได้
ความสามารถในการอ่านควรชัดเจนว่าช่วงตัวอักษรหมายถึงอะไร
ความไม่น่าสงสัยมันควรจะไร้เหตุผลอย่างสมบูรณ์แบบในสิ่งที่ช่วงตัวอักษรอธิบาย
ค่าเริ่มต้นควรเป็นแบบรวมถึงแบบเอกสิทธิ์เนื่องจากเป็นสิ่งที่ใช้ในกรณีส่วนใหญ่สำหรับการวนซ้ำอาร์เรย์เป็นต้น
อย่างไรก็ตามตัวอย่างหนึ่งของช่วงตัวอักษรที่ฉันได้เห็นคือ Ruby ซึ่งอยู่ในรูปแบบของ 1..3 สำหรับช่วงพิเศษ (ที่สิ้นสุด) และ 1 ... 3 สำหรับการรวม (บนสุด) คุณยังสามารถทำ 1..10.step (5) หลังจากพิจารณาอย่างถี่ถ้วนแล้วฉันพบบางสิ่งที่ฉันไม่ชอบเกี่ยวกับวิธีการนั้น (จากความรู้ที่ จำกัด เกี่ยวกับทับทิม)
คุณสามารถอธิบายได้อย่างครอบคลุมและพิเศษเฉพาะตอนท้าย ในขณะที่อธิบายสถานการณ์ส่วนใหญ่ดูเหมือนจะไม่สอดคล้องกันเล็กน้อย
แตกต่างกันเพียงเพิ่มเติม ดูเหมือนว่าเป็นสูตรสำหรับทำให้ยากที่จะดูว่าช่วงนั้นครอบคลุมหรือเป็นเอกสิทธิ์ ฉันไม่รู้เกี่ยวกับคุณ แต่จุดที่มักจะกลายเป็นสิ่งที่เบลอ :)
การเพิ่มวิธีการเช่นสัญกรณ์สำหรับช่วงดูเหมือนจะผสมผสานความคิดของตัวอักษรเข้ากับชั้นเรียนซึ่งดูเหมือนว่าจะไม่สอดคล้องกันเล็กน้อย
อย่างไรก็ตามหลังจากไตร่ตรองทางเลือกที่แตกต่างกัน ฉันมากับสิ่งนี้
- [5..1] 5,4,3,2,1
- [1..5 [ 1,2,3,4
- ] 1..5] 2,3,4,5
- [ 0..5..20] 0,5,10,15,20
และอื่น ๆ ฉันชอบเพราะ [โดยปกติ denonates ชุดและชนิดนี้เหมาะกับที่แม้ว่าจะตรงกันข้ามกับชุดจะได้รับคำสั่ง
สิ่งหนึ่งที่ฉันขาดไปนิดหน่อยคือการสร้างตัวบ่งชี้เอกสิทธิ์เฉพาะบุคคล / รวมที่บังคับหรือไม่เช่นถ้าคุณเขียนแค่ 1..5 ค่าเริ่มต้นจะเป็น 1,2,3,4 เนื่องจากเป็นกรณีที่พบบ่อยที่สุดกับอาร์เรย์ ฯลฯ ง่ายขึ้นและอ่านได้มากขึ้น แต่เจาะจงน้อยลงและถ้าคุณต้องเขียน [1..5 [คุณเรียนรู้เร็วเกี่ยวกับการทำงานของมัน
คุณคิดว่าอย่างไรฉันครอบคลุมฐานส่วนใหญ่มองข้ามบางสิ่งบางอย่าง? คุณจะทำให้ [] บังคับหรือไม่? คุณจะออกแบบตัวอักษรช่วงที่แตกต่างกันในภาษาการเขียนโปรแกรมของคุณหรือไม่
ผู้สมัคร
- สไตล์วงเล็บปีกกา: [0..10 [ , ด้วยขั้นตอน: [0..5..20 [
- สัญกรณ์ช่วงเวลา: [0..10) กับขั้นตอน: [0..5 .. 20)
- อัศเจรีย์เพื่อความเกินจริง 0 .. ! 10 พร้อมขั้นตอน: 0..5 .. ! 20
- ด้วยขั้นตอนที่แตกต่างกัน 0 .. ! 20, 5
- อย่างไรก็ตามนั่นจะทำให้เป็นค่าเริ่มต้น * 0..10 'รวมทุกอย่าง
- ใช้คำ: [0 ถึง! 20 จาก 5]
ฉันต้องบอกว่ารายการโปรดของฉันอย่างใจจดใจจ่อจนเป็น0 .. ! 10และ0..5 .. ! 20ฉันแค่หวังว่าเริ่มต้น0..10ถึงรวมแบบเอกสิทธิ์เฉพาะบุคคลจะมีเหตุผลมากขึ้น
1,5,10,15,20
ช่องว่าง 4, 5, 5, 5!