คำถามติดแท็ก functions

Function คือบล็อกของรหัสที่ทำหน้าที่เฉพาะ

5
การปรับเปลี่ยนวิธีการแบบยาว: ออกตามที่เป็นเทียบกับการแยกออกเป็นวิธีการเปรียบเทียบกับการใช้ฟังก์ชันในเครื่อง
สมมติว่าฉันมีวิธียาวเช่นนี้ public void SomeLongMethod() { // Some task #1 ... // Some task #2 ... } วิธีนี้ไม่มีชิ้นส่วนซ้ำ ๆ ที่ควรเคลื่อนย้ายไปยังวิธีอื่นหรือฟังก์ชั่นในเครื่อง มีหลายคน (รวมถึงฉัน) ที่คิดว่าวิธีการที่ยาวนานนั้นเป็นกลิ่นรหัส นอกจากนี้ผมไม่ชอบความคิดของการใช้#region(s) ที่นี่มีคำตอบที่เป็นที่นิยมมากอธิบายว่าทำไมนี้ไม่ดี แต่ถ้าฉันแยกรหัสนี้เป็นวิธีการ public void SomeLongMethod() { Task1(); Task2(); } private void Task1() { // Some task #1 ... } private void Task2() { // Some task #1 …

3
ฟังก์ชั่นการรับค่าจากฟังก์ชั่นอื่นถือว่าบริสุทธิ์หรือไม่
ฉันกำลังพยายามหาวิธีจัดการกับค่าตัวแปรเริ่มต้นเมื่อสร้างฟังก์ชั่นที่ไม่มีผลข้างเคียงและสิ้นสุดลงด้วยสิ่งต่อไปนี้: function getDefaultSeparator() { return ':'; } function process(input, separator) { var separator = separator || getDefaultSeparator(); // Use separator in some logic return output; } ตัวคั่นเริ่มต้นจะใช้ในฟังก์ชั่นอื่นและฉันต้องการกำหนดไว้ในที่เดียวเท่านั้น หากนี่คือฟังก์ชั่นที่บริสุทธิ์ความแตกต่างจากการใช้ค่าคงที่ DEFAULT_SEPARATOR ทั่วโลกแทนคืออะไร

4
เหตุใดจึงต้องใช้ฟังก์ชันว่าง
ฉันเริ่มเรียนรู้หลามและฉันสงสัยว่าทำไมฟังก์ชันว่างจึงจำเป็นต้องใช้ในภาษาการเขียนโปรแกรม เช่นในหลาม: def empty_func(): pass แม้ในเชลล์สคริปต์ฟังก์ชันว่างฟังก์ชันว่างมี ความเข้าใจและคำถามของฉัน: ทำไมภาษาการเขียนโปรแกรมจำเป็นต้องมีฟังก์ชั่นที่ว่างเปล่า? มันเป็นเพียงการเล่นกับภาษาโปรแกรมหรือไม่มีอะไรที่สำคัญจริงๆ? หากมีวัตถุประสงค์ใครสามารถอธิบายกรณีการใช้งานหรือให้ตัวอย่างจริงของการใช้ฟังก์ชันว่างเปล่าได้หรือไม่ หรือมีประเพณีของภาษาการเขียนโปรแกรมที่ช่วยให้ฟังก์ชั่นที่ว่างเปล่า? แก้ไข (สิ่งที่ฉันได้จากการอ่านคำตอบของคุณ): สำหรับขั้นตอนวิธีการร่างหรือฟังก์ชั่นบทคัดย่อ สำหรับการส่งแบบฟอร์มโดยไม่ต้องดำเนินการใด ๆ ตัวยึดสำหรับการดำเนินการบังคับบางอย่าง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.