ฉันพบวิธีในบางครั้งที่ผู้พัฒนาเลือกที่จะคืนสิ่งที่ไม่สำคัญกับฟังก์ชั่น ฉันหมายถึงเมื่อดูที่รหัสดูเหมือนว่าจะทำงานได้ดีพอ ๆ กับvoid
หลังจากที่ฉันคิดว่า "ทำไม" เสียงนี้คุ้นเคยไหม?
บางครั้งผมก็จะเห็นว่าส่วนใหญ่มักจะดีกว่าที่จะกลับมาสิ่งที่ต้องการbool
หรือมากกว่าแล้วก็ทำint
void
ฉันไม่แน่ใจว่าในภาพรวมเกี่ยวกับข้อดีข้อเสีย
ขึ้นอยู่กับสถานการณ์การส่งคืนint
สามารถทำให้ผู้โทรทราบถึงจำนวนแถวหรือวัตถุที่ได้รับผลกระทบจากวิธีการ (เช่นบันทึก 5 รายการไปยัง MSSQL) หากวิธีการเช่น "InsertSomething" ส่งกลับแบบบูล, ฉันจะมีวิธีการออกแบบมาเพื่อกลับถ้าประสบความสำเร็จอื่นtrue
false
ผู้เรียกสามารถเลือกที่จะดำเนินการหรือไม่ใช้ข้อมูลนั้น
ในทางกลับกัน,
- มันอาจนำไปสู่วัตถุประสงค์ที่ชัดเจนน้อยลงของวิธีการโทร? การเข้ารหัสที่ไม่ดีมักจะบังคับให้ฉันต้องตรวจสอบเนื้อหาวิธีอีกครั้ง ถ้ามันคืนบางอย่างมันบอกคุณว่าวิธีนั้นเป็นประเภทที่คุณต้องทำอะไรบางอย่างกับผลลัพธ์ที่ส่งคืน
- ปัญหาอีกประการหนึ่งคือหากคุณไม่รู้จักวิธีการใช้งานผู้พัฒนาตัดสินใจว่าจะส่งคืนสิ่งที่ไม่สำคัญต่อการทำงาน แน่นอนคุณสามารถแสดงความคิดเห็นได้
- ค่าส่งคืนจะต้องมีการประมวลผลเมื่อการประมวลผลอาจจะสิ้นสุดที่วงเล็บปิดของวิธีการ
- เกิดอะไรขึ้นภายใต้ประทุน? วิธีการที่เรียกว่าได้รับ
false
เนื่องจากข้อผิดพลาดโยนหรือไม่ หรือมันกลับเท็จเนื่องจากผลการประเมิน?
คุณมีประสบการณ์อะไรกับเรื่องนี้? คุณจะทำสิ่งนี้อย่างไร
void
อย่างน้อยทำให้นักพัฒนาซอฟต์แวร์ทราบว่ามูลค่าการส่งคืนของวิธีนั้นไม่สำคัญ มันเป็นการกระทำมากกว่าการคำนวณคุณค่า