บางครั้งฉันสะดุดกับรหัสที่คล้ายกับตัวอย่างต่อไปนี้ (สิ่งที่ฟังก์ชั่นนี้ทำไม่ตรงกับขอบเขตของคำถามนี้):
function doSomething(value) {
if (check1(value)) {
return -1;
}
else if (check2(value)) {
return value;
}
else {
return false;
}
}
ในขณะที่คุณสามารถดูif
, else if
และelse
งบที่ใช้ร่วมกับreturn
คำสั่ง ดูเหมือนว่าจะใช้งานง่ายสำหรับผู้สังเกตการณ์ทั่วไป แต่ฉันคิดว่ามันจะดูสง่างามกว่า (จากมุมมองของนักพัฒนาซอฟต์แวร์) เพื่อวางelse
-s และทำให้รหัสง่ายขึ้นดังนี้:
function doSomething(value) {
if (check1(value)) {
return -1;
}
if (check2(value)) {
return value;
}
return false;
}
สิ่งนี้สมเหตุสมผลเนื่องจากทุกสิ่งที่ตามหลังreturn
คำสั่ง (ในขอบเขตเดียวกัน) จะไม่ถูกเรียกใช้งานทำให้โค้ดด้านบนมีความหมายเท่ากับตัวอย่างแรก
ข้อใดข้างต้นที่เหมาะกับวิธีการเข้ารหัสที่ดีมากกว่า มีข้อเสียเปรียบกับวิธีการอย่างใดอย่างหนึ่งเกี่ยวกับการอ่านรหัส?
แก้ไข: ข้อเสนอแนะที่ซ้ำกันได้ทำกับคำถามนี้ให้ไว้เป็นข้อมูลอ้างอิง ฉันเชื่อว่าคำถามของฉันสัมผัสกับหัวข้อที่แตกต่างกันเนื่องจากฉันไม่ได้ถามเกี่ยวกับการหลีกเลี่ยงข้อความที่ซ้ำกันตามที่ปรากฏในคำถามอื่น ทั้งสองคำถามพยายามลดการทำซ้ำแม้ว่าจะมีวิธีที่แตกต่างกันเล็กน้อย
-1
คือตัวเลขfalse
เป็นบูลีนและvalue
ไม่ได้ระบุไว้ที่นี่เพื่อให้เป็นวัตถุประเภทใดก็ได้
value
จริง ๆ แล้วเป็นจำนวนเต็ม ถ้ามันสามารถเป็นอะไรก็ได้
else
คือน้อยกว่าปัญหาที่ใหญ่กว่าคือคุณเห็นได้ชัดว่าคืนข้อมูลสองชนิดจากฟังก์ชันเดียวซึ่งทำให้ API ของฟังก์ชันไม่แน่นอน