Dynamics 365 Business Central: การใช้ Ternary Operator ใน AL แบบมืออาชีพ

Ternary Operator หรือที่เรียกกันว่า “Conditional Operator” เป็นฟีเจอร์ใหม่ที่ถูกเพิ่มเข้ามาในภาษา AL เพื่อเพิ่มความสามารถในการเขียนโค้ดที่กระชับและอ่านง่ายขึ้น โดยเฉพาะในสถานการณ์ที่ต้องการตรวจสอบเงื่อนไขและคืนค่าต่างๆ ตามเงื่อนไขนั้นๆ

รูปแบบการใช้งาน Ternary Operator

ซึ่งสามารถนำมาใช้แทนโครงสร้าง if-then-else แบบพื้นฐานได้ในกรณีที่เงื่อนไขมีความเรียบง่ายและกระชับพอสมควร

เหตุผลที่ควรใช้ Ternary Operator

การใช้ Ternary operator มีประโยชน์ในการลดความซับซ้อนของโค้ด โดยเฉพาะในกรณีที่เงื่อนไขนั้นง่ายและสามารถอ่านผลลัพธ์ได้อย่างชัดเจนในบรรทัดเดียว ตัวอย่างเช่น:

เทียบกับการใช้ if-then-else แบบธรรมดา:

// การใช้ if-then-else
if Number > 0 then
    IsPositive := 'Positive';
else
    IsPositive := 'Negative or Zero';

จากตัวอย่างนี้จะเห็นได้ว่า Ternary operator ช่วยให้โค้ดสั้นลงและอ่านง่ายขึ้น

ข้อควรระวังในการใช้ Ternary Operator

แม้ว่า Ternary operator จะมีประโยชน์ในบางกรณี แต่ก็มีข้อควรระวังในการใช้งานเช่นกัน

1. อย่าใช้ถ้าโค้ดยาวเกินไป: ควรใช้ Ternary operator เฉพาะในกรณีที่เงื่อนไขและผลลัพธ์นั้นสั้นและกระชับพอที่จะอ่านได้ในบรรทัดเดียว เช่น:

ไม่เหมาะสม:

2. หลีกเลี่ยงการใช้ในกรณีที่มีเงื่อนไขซ้ำซ้อน: หากเงื่อนไขเดียวกันต้องตรวจสอบหลายครั้ง ควรใช้ if-then-else แทนเพื่อลดความซับซ้อนของโค้ด:

3. ไม่ควรใช้ Ternary operator เพื่อคืนค่า Boolean flag: การใช้ Ternary operator ในกรณีนี้ไม่จำเป็นและอาจทำให้โค้ดสับสน:

ควรใช้แบบนี้แทน:

4. หลีกเลี่ยงการใช้ Ternary operator ที่ซ้อนกันหลายชั้น: การใช้ Ternary operator ที่ซ้อนกันหลายชั้นทำให้โค้ดอ่านยากและตรวจสอบยาก:

// ไม่ควรใช้
DiscountLevel := PurchaseAmount > 1000 ?
                 (CustomerType = 'VIP' ? 'High Discount' : 'Medium Discount') :
                 (CustomerType = 'VIP' ? 'Low Discount' : 'No Discount');

ควรใช้ if-then-else แทน:

บทสรุป

Ternary operator เป็นเครื่องมือที่ทรงพลังและมีประโยชน์ใน AL Programming Language เมื่อใช้งานอย่างเหมาะสม อย่างไรก็ตาม ควรใช้งานด้วยความระมัดระวังและยึดหลักการเขียนโค้ดที่เรียบง่าย เพื่อให้โค้ดอ่านง่ายและตรวจสอบได้สะดวก ผู้พัฒนาที่ดีควรรู้จักเลือกใช้เครื่องมือให้เหมาะสมกับสถานการณ์ เพื่อให้ได้ผลลัพธ์ที่มีประสิทธิภาพและรักษาคุณภาพของโค้ดให้ดีที่สุด

Leave a comment