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

ฟังก์ชั่น (เรียกอีกอย่างว่าโพรซีเดอร์เมธอดรูทีนย่อยหรือรูทีน) เป็นส่วนของรหัสที่มีวัตถุประสงค์เพื่อดำเนินงานเดี่ยวที่เฉพาะเจาะจง ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องกับการสร้างหรือการเรียกฟังก์ชั่นโดยเฉพาะ สำหรับความช่วยเหลือในการใช้ฟังก์ชั่นเพื่อทำงานให้ใช้ [อัลกอริทึม] หรือแท็กเฉพาะงานแทน

4
เหตุใดต้นแบบฟังก์ชันของ Perl 5 จึงไม่ดี
ในคำถาม Stack Overflow อื่น Leon Timmermansยืนยันว่า: ฉันขอแนะนำว่าอย่าใช้ต้นแบบ พวกเขามีการใช้งาน แต่ไม่ใช่สำหรับกรณีส่วนใหญ่และไม่แน่นอนในกรณีนี้ เหตุใดจึงอาจเป็นจริง (หรืออย่างอื่น) ฉันมักจะจัดหาต้นแบบสำหรับฟังก์ชัน Perl ของฉันและฉันไม่เคยเห็นใครพูดอะไรไม่ดีเกี่ยวกับการใช้งานมาก่อน
116 perl  function  prototype 

10
ฟังก์ชัน Python เป็นอาร์กิวเมนต์ของฟังก์ชัน?
ฟังก์ชัน Python สามารถเป็นอาร์กิวเมนต์ของฟังก์ชันอื่นได้หรือไม่? พูด: def myfunc(anotherfunc, extraArgs): # run anotherfunc and also pass the values from extraArgs to it pass นี่คือสองคำถามโดยทั่วไป: ได้รับอนุญาตหรือไม่? และถ้าเป็นเช่นนั้นฉันจะใช้ฟังก์ชันภายในฟังก์ชันอื่นได้อย่างไร? ฉันจะต้องใช้ exec (), eval () หรืออะไรทำนองนั้น? ไม่จำเป็นต้องยุ่งกับพวกเขา BTW, extraArgs คือรายการ / ทูเพิลของอาร์กิวเมนต์ของ anotherfunc

23
ฟังก์ชันใน JavaScript ที่สามารถเรียกใช้ได้เพียงครั้งเดียว
ฉันต้องการสร้างฟังก์ชันที่สามารถเรียกใช้งานได้เพียงครั้งเดียวในแต่ละครั้งหลังจากครั้งแรกจะไม่ถูกเรียกใช้งาน ฉันรู้จาก C ++ และ Java เกี่ยวกับตัวแปรคงที่สามารถทำงานได้ แต่ฉันอยากรู้ว่ามีวิธีที่หรูหรากว่านี้หรือไม่?

18
การทำความเข้าใจว่าฟังก์ชันแบบเรียกซ้ำทำงานอย่างไร
ตามชื่อเรื่องอธิบายว่าฉันมีคำถามเกี่ยวกับการเขียนโปรแกรมพื้นฐานที่ฉันยังไม่สามารถพูดได้ การกรองออกทั้งหมด (ฉลาดมาก) "เพื่อให้เข้าใจการเรียกซ้ำคุณต้องเข้าใจการเรียกซ้ำก่อน" การตอบกลับจากกระทู้ออนไลน์ต่างๆฉันยังไม่ค่อยเข้าใจ การเข้าใจว่าเมื่อต้องเผชิญกับการไม่รู้ในสิ่งที่เราไม่รู้เรามักจะถามคำถามผิด ๆ หรือถามคำถามที่ถูกต้องไม่ถูกต้องฉันจะแบ่งปันสิ่งที่ฉัน "คิด" คำถามของฉันหวังว่าจะมีคนที่มีมุมมองคล้าย ๆ กันสามารถแบ่งปันได้บ้าง เกร็ดความรู้ที่จะช่วยเปิดหลอดไฟวนซ้ำให้ฉัน! นี่คือฟังก์ชั่น (ไวยากรณ์ถูกเขียนด้วย Swift): func sumInts(a: Int, b: Int) -> Int { if (a > b) { return 0 } else { return a + sumInts(a: a + 1, b: b) } } เราจะใช้ 2 และ 5 เป็นอาร์กิวเมนต์ของเรา: …

5
คุณสามารถเขียนฟังก์ชันซ้อนใน JavaScript ได้หรือไม่?
ฉันสงสัยว่า JavaScript รองรับการเขียนฟังก์ชันภายในฟังก์ชันอื่นหรือฟังก์ชันซ้อนกัน (ฉันอ่านในบล็อก) เป็นไปได้จริงเหรอ?. อันที่จริงฉันได้ใช้สิ่งเหล่านี้ แต่ไม่แน่ใจในแนวคิดนี้ ฉันไม่ชัดเจนเกี่ยวกับเรื่องนี้ - โปรดช่วยด้วย!

14
JavaScript: โคลนฟังก์ชัน
วิธีที่เร็วที่สุดในการโคลนฟังก์ชันใน JavaScript คืออะไร (มีหรือไม่มีคุณสมบัติ) ตัวเลือกทั้งสองมาถึงใจและeval(func.toString()) function() { return func.apply(..) }แต่ฉันกังวลเกี่ยวกับประสิทธิภาพของการประเมินและการห่อจะทำให้สแต็กแย่ลงและอาจทำให้ประสิทธิภาพลดลงหากใช้มากหรือใช้กับการห่อแล้ว new Function(args, body) ดูดี แต่ฉันจะแยกฟังก์ชันที่มีอยู่เป็น args และ body ที่เชื่อถือได้โดยไม่ใช้ตัวแยกวิเคราะห์ JS ใน JS ได้อย่างไร ขอบคุณล่วงหน้า. อัปเดต: สิ่งที่ฉันหมายถึงคือสามารถทำได้ var funcB = funcA.clone(); // where clone() is my extension funcB.newField = {...}; // without affecting funcA

4
ความคิดเห็นเกี่ยวกับฟังก์ชัน PHP
เป็นคำถามสั้น ๆ : ฉันเห็นว่าฟังก์ชัน PHP บางอย่างถูกแสดงความคิดเห็นที่ด้านบนโดยใช้รูปแบบที่ฉันไม่รู้จัก: /** * * Convert an object to an array * * @param object $object The object to convert * @return array * */ IDE ของฉันให้ตัวเลือกแบบเลื่อนลงสำหรับสิ่งต่างๆเช่น @param และ @return ดังนั้นจึงต้องจัดทำเป็นเอกสารไว้ที่ใดที่หนึ่ง ฉันได้ลองค้นหา google แล้ว แต่จะไม่มีสัญลักษณ์ @ ในการค้นหา รูปแบบการแสดงความคิดเห็นนี้คืออะไรและฉันจะหาข้อมูลได้จากที่ใด

11
ลองใช้ JavaScript {} without catch {} ได้ไหม
ฉันมีฟังก์ชั่นหลายอย่างที่ส่งคืนบางอย่างหรือส่งข้อผิดพลาด ในฟังก์ชันหลักฉันเรียกสิ่งเหล่านี้และต้องการส่งคืนค่าที่ส่งคืนโดยแต่ละฟังก์ชันหรือไปที่ฟังก์ชันที่สองหากฟังก์ชันแรกเกิดข้อผิดพลาด โดยพื้นฐานแล้วสิ่งที่ฉันมีอยู่คือ: function testAll() { try { return func1(); } catch(e) {} try { return func2(); } catch(e) {} // If func1 throws error, try func2 try { return func3(); } catch(e) {} // If func2 throws error, try func3 } แต่จริงๆแล้วฉันต้องการtryส่งคืนเท่านั้น(เช่นถ้ามันไม่เกิดข้อผิดพลาด) ฉันไม่ต้องการcatchบล็อก อย่างไรก็ตามรหัสเช่นtry {}ล้มเหลวเนื่องจากไม่มีcatch {}บล็อก(ไม่ได้ใช้) ฉันใส่ตัวอย่างใน jsFiddle ดังนั้นมีวิธีใดบ้างที่จะcatchลบบล็อกเหล่านั้นออกไปในขณะที่ได้ผลเช่นเดียวกัน?

9
“ int & foo ()” ใน C ++ หมายความว่าอย่างไร
ในขณะที่อ่านคำอธิบายเกี่ยวกับ lvalues ​​และ rvalues ​​บรรทัดของโค้ดเหล่านี้ติดอยู่กับฉัน: int& foo(); foo() = 42; // OK, foo() is an lvalue ฉันลองใช้ใน g ++ แต่คอมไพเลอร์แจ้งว่า "undefined reference to foo ()" ถ้าฉันเพิ่ม int foo() { return 2; } int main() { int& foo(); foo() = 42; } มันรวบรวมดี แต่ใช้มันให้ความผิดส่วน เพียงแค่บรรทัด int& foo(); โดยตัวมันเองทั้งคอมไพล์และรันโดยไม่มีปัญหาใด ๆ รหัสนี้หมายถึงอะไร? คุณจะกำหนดค่าให้กับการเรียกใช้ฟังก์ชันได้อย่างไรและเหตุใดจึงไม่ใช่ค่า …

9
เป็น 'int main; โปรแกรม C / C ++ ที่ถูกต้องหรือไม่
ฉันถามเพราะดูเหมือนว่าคอมไพเลอร์ของฉันจะคิดอย่างนั้นแม้ว่าฉันจะไม่ทำก็ตาม echo 'int main;' | cc -x c - -Wall echo 'int main;' | c++ -x c++ - -Wall เสียงดังรบกวนไม่มีคำเตือนหรือข้อผิดพลาดเกี่ยวกับสิ่งนี้และ gcc จะออกเฉพาะคำเตือนที่อ่อนโยน: 'main' is usually a function [-Wmain]แต่เฉพาะเมื่อรวบรวมเป็น C การระบุ a -std=ดูเหมือนจะไม่สำคัญ มิฉะนั้นจะรวบรวมและเชื่อมโยงได้ดี แต่ในการดำเนินการมันจะสิ้นสุดลงทันทีด้วยSIGBUS(สำหรับฉัน) การอ่านคำตอบ (ยอดเยี่ยม) ที่สิ่งที่ main () ควรส่งคืนใน C และ C ++? และ grep อย่างรวดเร็วผ่านข้อกำหนดภาษาดูเหมือนว่าฉันจะต้องมีฟังก์ชันหลักอย่างแน่นอน แต่คำฟุ่มเฟือยจาก gcc -Wmain('main' …
113 c++  c  function  main  entry-point 

9
เป็นฟังก์ชันที่เรียก Math.random () บริสุทธิ์หรือไม่?
ต่อไปนี้เป็นฟังก์ชันบริสุทธิ์หรือไม่? function test(min,max) { return Math.random() * (max - min) + min; } ความเข้าใจของฉันคือฟังก์ชันบริสุทธิ์เป็นไปตามเงื่อนไขเหล่านี้: ส่งคืนค่าที่คำนวณจากพารามิเตอร์ มันไม่ทำงานอื่นใดนอกจากการคำนวณมูลค่าที่ส่งคืน ถ้าคำจำกัดความนี้ถูกต้องฟังก์ชันของฉันเป็นฟังก์ชันบริสุทธิ์หรือไม่ หรือความเข้าใจของฉันเกี่ยวกับสิ่งที่กำหนดฟังก์ชันบริสุทธิ์ไม่ถูกต้อง?

2
ตัวรับค่าเทียบกับตัวรับตัวชี้
มันไม่ชัดเจนมากสำหรับฉันในกรณีนี้ฉันต้องการใช้ตัวรับค่าแทนการใช้ตัวรับตัวชี้เสมอ สรุปจากเอกสาร: type T struct { a int } func (tv T) Mv(a int) int { return 0 } // value receiver func (tp *T) Mp(f float32) float32 { return 1 } // pointer receiver เอกสารกล่าวว่านอกจากนี้ยังมี "สำหรับประเภทเช่นประเภทพื้นฐานชิ้นและ structs ขนาดเล็กรับคุ้มค่าราคาถูกมากดังนั้นถ้าความหมายของวิธีการที่ต้องใช้ตัวชี้รับค่ามีประสิทธิภาพและชัดเจน." จุดแรกบอกว่า "ถูกมาก" แต่คำถามคือถูกกว่าแล้วตัวรับสัญญาณ ดังนั้นฉันจึงสร้างเกณฑ์มาตรฐานขนาดเล็ก(รหัสในส่วนสำคัญ)ซึ่งแสดงให้ฉันเห็นว่าตัวรับตัวชี้นั้นเร็วกว่าแม้ในโครงสร้างที่มีฟิลด์สตริงเพียงช่องเดียว นี่คือผลลัพธ์: // Struct one empty string property …
112 function  pointers  go 


11
บังคับตั้งชื่อพารามิเตอร์ใน Python
ใน Python คุณอาจมีนิยามฟังก์ชัน: def info(object, spacing=10, collapse=1) ซึ่งสามารถเรียกได้ด้วยวิธีใด ๆ ต่อไปนี้: info(odbchelper) info(odbchelper, 12) info(odbchelper, collapse=0) info(spacing=15, object=odbchelper) ต้องขอบคุณ Python ที่อนุญาตให้มีอาร์กิวเมนต์ลำดับใดก็ได้ตราบเท่าที่มีการตั้งชื่อ ปัญหาที่เราพบคือเมื่อฟังก์ชันที่ใหญ่ขึ้นบางส่วนของเราเติบโตขึ้นผู้คนอาจเพิ่มพารามิเตอร์ระหว่างspacingและcollapseซึ่งหมายความว่าค่าที่ไม่ถูกต้องอาจไปสู่พารามิเตอร์ที่ไม่มีชื่อ นอกจากนี้บางครั้งมันก็ไม่ชัดเจนเสมอไปว่าต้องทำอะไรบ้างเรากำลังหาวิธีบังคับให้ผู้คนตั้งชื่อพารามิเตอร์บางอย่างไม่ใช่แค่มาตรฐานการเข้ารหัส แต่ควรเป็นแฟล็กหรือปลั๊กอิน pydev? ดังนั้นใน 4 ตัวอย่างข้างต้นสุดท้ายเท่านั้นที่จะผ่านการตรวจสอบเนื่องจากพารามิเตอร์ทั้งหมดถูกตั้งชื่อ เราจะเปิดอัตราต่อรองสำหรับบางฟังก์ชันเท่านั้น แต่ข้อเสนอแนะเกี่ยวกับวิธีการใช้งาน - หรือถ้าเป็นไปได้ก็จะได้รับการชื่นชม

5
Objective-C Split ()?
มีวิธีใดในการแยกสตริงในวัตถุประสงค์ c เป็นอาร์เรย์หรือไม่? ฉันหมายถึงแบบนี้ - สตริงอินพุตใช่: 0: 42: ค่าในอาร์เรย์ของ (ใช่ 0,42 ค่า)?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.