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

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

4
อะไรคือความแตกต่างระหว่างโครงสร้างภาษาและฟังก์ชัน“ built-in” ใน PHP?
ฉันรู้ว่าinclude, isset, require, print, echoและบางคนอื่นไม่ได้ฟังก์ชั่น แต่โครงสร้างภาษา โครงสร้างภาษาเหล่านี้บางส่วนจำเป็นต้องมีวงเล็บส่วนภาษาอื่น ๆ ไม่ต้องการ require 'file.php'; isset($x); บางอย่างมีมูลค่าตอบแทนบางส่วนไม่มี print 'foo'; //1 echo 'foo'; //no return value แล้วความแตกต่างภายในระหว่างโครงสร้างภาษาและฟังก์ชันในตัวคืออะไร?

8
PHP call_user_func เทียบกับฟังก์ชันการโทร
ฉันแน่ใจว่ามีคำอธิบายที่ง่ายมากสำหรับเรื่องนี้ อะไรคือความแตกต่างระหว่างสิ่งนี้: function barber($type){ echo "You wanted a $type haircut, no problem\n"; } call_user_func('barber', "mushroom"); call_user_func('barber', "shave"); ... และสิ่งนี้ (และประโยชน์คืออะไร?): function barber($type){ echo "You wanted a $type haircut, no problem\n"; } barber('mushroom'); barber('shave');
92 php  function 

2
ฟังก์ชันที่มีชื่อเดียวกัน แต่มีลายเซ็นต่างกันในคลาสที่ได้รับ
ฉันมีฟังก์ชันที่มีชื่อเดียวกัน แต่มีลายเซ็นต่างกันในคลาสพื้นฐานและคลาสที่ได้รับ เมื่อฉันพยายามใช้ฟังก์ชันของคลาสพื้นฐานในคลาสอื่นที่สืบทอดมาจากที่ได้รับมาฉันได้รับข้อผิดพลาด ดูรหัสต่อไปนี้: class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { public: void bar() { string s; foo(s); } }; ฉันได้รับข้อผิดพลาดต่อไปนี้จากคอมไพเลอร์ gcc: In member function `void C::bar()': no matching function for call …

12
การเรียกฟังก์ชันล่าช้า
มีวิธีง่ายๆที่ดีในการหน่วงเวลาการเรียกใช้ฟังก์ชันในขณะที่ปล่อยให้เธรดดำเนินการต่อไปหรือไม่? เช่น public void foo() { // Do stuff! // Delayed call to bar() after x number of ms // Do more Stuff } public void bar() { // Only execute once foo has finished } ฉันทราบว่าสามารถทำได้โดยใช้ตัวจับเวลาและตัวจัดการเหตุการณ์ แต่ฉันสงสัยว่ามีวิธี c # มาตรฐานในการบรรลุสิ่งนี้หรือไม่? ถ้าใครอยากรู้อยากเห็นเหตุผลที่ต้องมีก็คือ foo () และ bar () อยู่ในคลาส (singleton) ที่แตกต่างกันซึ่งฉันต้องการเรียกกันและกันในสถานการณ์พิเศษ …
92 c#  function  delay 

7
Bash: ส่งผ่านฟังก์ชันเป็นพารามิเตอร์
ฉันต้องส่งฟังก์ชันเป็นพารามิเตอร์ใน Bash ตัวอย่างเช่นรหัสต่อไปนี้: function x() { echo "Hello world" } function around() { echo "before" eval $1 echo "after" } around x ควรส่งออก: before Hello world after ฉันรู้ว่าevalไม่ถูกต้องในบริบทนั้น แต่นั่นเป็นเพียงตัวอย่าง :) ความคิดใด ๆ ?

8
ฉันสามารถตั้งชื่อฟังก์ชัน JavaScript และเรียกใช้งานได้ทันทีหรือไม่?
ฉันมีไม่กี่สิ่งเหล่านี้: function addEventsAndStuff() { // bla bla } addEventsAndStuff(); function sendStuffToServer() { // send stuff // get HTML in response // replace DOM // add events: addEventsAndStuff(); } การเพิ่มเหตุการณ์ใหม่เป็นสิ่งที่จำเป็นเนื่องจาก DOM มีการเปลี่ยนแปลงดังนั้นเหตุการณ์ที่แนบมาก่อนหน้านี้จึงหายไป เนื่องจากต้องติดตั้งในตอนแรกเช่นกัน (duh) จึงอยู่ในฟังก์ชันที่ดีที่จะแห้ง ไม่มีอะไรผิดปกติกับการตั้งค่านี้ (หรือมี) แต่ฉันจะทำให้มันราบรื่นได้ไหม ฉันต้องการสร้างaddEventsAndStuff()ฟังก์ชันและเรียกมันทันทีดังนั้นมันจึงไม่ดูเป็นมือสมัครเล่น ทั้งสองต่อไปนี้ตอบสนองด้วยข้อผิดพลาดทางไวยากรณ์: function addEventsAndStuff() { alert('oele'); }(); (function addEventsAndStuff() { alert('oele'); })(); ผู้รับใด …

6
การโทรกลับ C ++ โดยใช้สมาชิกคลาส
ฉันรู้ว่ามีการถามเรื่องนี้หลายครั้งและด้วยเหตุนี้จึงเป็นการยากที่จะขุดผ่านปมและหาตัวอย่างง่ายๆว่าอะไรได้ผล ฉันมีสิ่งนี้มันง่ายและใช้ได้กับMyClass... #include <iostream> using std::cout; using std::endl; class MyClass { public: MyClass(); static void Callback(MyClass* instance, int x); private: int private_x; }; class EventHandler { public: void addHandler(MyClass* owner) { cout << "Handler added..." << endl; //Let's pretend an event just occured owner->Callback(owner,1); } }; EventHandler* handler; MyClass::MyClass() { …

5
เรียกใช้ฟังก์ชันจาวาสคริปต์ซ้ำ
ฉันสามารถสร้างฟังก์ชันวนซ้ำในตัวแปรดังนี้: /* Count down to 0 recursively. */ var functionHolder = function (counter) { output(counter); if (counter > 0) { functionHolder(counter-1); } } ด้วยวิธีนี้จะส่งออกfunctionHolder(3); 3 2 1 0สมมติว่าฉันทำสิ่งต่อไปนี้: var copyFunction = functionHolder; copyFunction(3);จะแสดงผลลัพธ์3 2 1 0ตามด้านบน ถ้าฉันเปลี่ยนแล้วfunctionHolderดังนี้: functionHolder = function(whatever) { output("Stop counting!"); จากนั้นfunctionHolder(3);จะให้Stop counting!ตามที่คาดไว้ copyFunction(3);ตอนนี้ให้3 Stop counting!ตามที่อ้างถึงfunctionHolderไม่ใช่ฟังก์ชัน (ที่ตัวเองชี้ไป) สิ่งนี้อาจเป็นที่พึงปรารถนาในบางสถานการณ์ …

12
วิธีการรับวัตถุ?
มีวิธีการหรือวิธีการที่เหมาะสมในการรับวิธีการทั้งหมดจากวัตถุหรือไม่? ตัวอย่างเช่น: function foo() {} foo.prototype.a = function() {} foo.prototype.b = function() {} foo.get_methods(); // returns ['a', 'b']; UPDATE: มีวิธีการเช่นนั้นใน Jquery หรือไม่? ขอขอบคุณ.

6
ฟังก์ชัน Chaining ใน Python
ในCodewars.comฉันพบงานต่อไปนี้: สร้างฟังก์ชันaddที่บวกตัวเลขเข้าด้วยกันเมื่อเรียกต่อเนื่องกัน ดังนั้นadd(1)ควรกลับ1, add(1)(2)ควรจะกลับ1+2... ในขณะที่ฉันคุ้นเคยกับพื้นฐานของ Python แต่ฉันไม่เคยพบฟังก์ชันที่สามารถเรียกต่อเนื่องกันได้เช่นฟังก์ชันf(x)ที่สามารถเรียกได้ว่าเป็นf(x)(y)(z)...ไฟล์. จนถึงตอนนี้ฉันยังไม่แน่ใจว่าจะตีความสัญกรณ์นี้อย่างไร ในฐานะที่เป็นนักคณิตศาสตร์ผมสงสัยว่าf(x)(y)เป็นหน้าที่ที่ได้รับมอบหมายในทุกxฟังก์ชั่นg_{x}และจากนั้นผลตอบแทนและเช่นเดียวกันสำหรับg_{x}(y)f(x)(y)(z) หากการตีความนี้ถูกต้อง Python จะอนุญาตให้ฉันสร้างฟังก์ชันแบบไดนามิกซึ่งดูน่าสนใจมากสำหรับฉัน ฉันค้นหาเว็บในช่วงหนึ่งชั่วโมงที่ผ่านมา แต่ไม่พบผู้นำในทิศทางที่ถูกต้อง เนื่องจากฉันไม่รู้ว่าแนวคิดการเขียนโปรแกรมนี้เรียกว่าอย่างไรจึงอาจไม่น่าแปลกใจนัก คุณเรียกแนวคิดนี้ว่าอย่างไรและฉันจะอ่านเพิ่มเติมเกี่ยวกับแนวคิดนี้ได้ที่ไหน

6
ฟังก์ชันที่ส่งคืนนิพจน์แลมบ์ดา
ฉันสงสัยว่าเป็นไปได้ไหมที่จะเขียนฟังก์ชันที่ส่งคืนฟังก์ชันแลมบ์ดาใน C ++ 11 แน่นอนปัญหาหนึ่งคือวิธีการประกาศฟังก์ชันดังกล่าว แลมบ์ดาแต่ละตัวมีประเภท แต่ประเภทนั้นไม่สามารถแสดงออกได้ใน C ++ ฉันไม่คิดว่าจะได้ผล: auto retFun() -> decltype ([](int x) -> int) { return [](int x) { return x; } } ไม่ใช่สิ่งนี้: int(int) retFun(); ฉันไม่ทราบถึงการแปลงอัตโนมัติใด ๆ จาก lambdas เป็นพูดชี้ไปยังฟังก์ชันหรือบางอย่าง วิธีแก้ปัญหาเดียวคือการประดิษฐ์วัตถุฟังก์ชันและส่งคืนหรือไม่?
90 c++  function  c++11  lambda 


7
const ก่อนพารามิเตอร์เทียบกับ const หลังชื่อฟังก์ชัน c ++
อะไรคือความแตกต่างระหว่างสิ่งนี้ friend Circle copy(const Circle &); และอะไรทำนองนี้ friend Circle copy(Circle&) const; ฉันรู้ว่า const หลังจากฟังก์ชันถูกใช้เพื่อบอกคอมไพเลอร์ว่าฟังก์ชันนี้จะไม่พยายามเปลี่ยนอ็อบเจ็กต์ที่เรียกใช้แล้วอีกอันล่ะ?

12
ฟังก์ชั่นเทียบกับขั้นตอนที่เก็บไว้
สมมติว่าฉันต้องใช้โค้ด T-SQL ที่ต้องส่งคืนตารางเป็นผลลัพธ์ ฉันสามารถใช้ฟังก์ชันค่าตารางหรืออื่น ๆ กระบวนงานที่เก็บไว้ที่ส่งคืนชุดของแถว ฉันควรใช้อะไร? ในระยะสั้นสิ่งที่ฉันอยากรู้คือ: ข้อแตกต่างหลักระหว่างฟังก์ชันและกระบวนงานที่จัดเก็บคืออะไร ฉันต้องคำนึงถึงอะไรบ้างในการใช้อย่างใดอย่างหนึ่ง

10
การส่งอาร์เรย์เป็นอาร์กิวเมนต์ไปยังฟังก์ชันใน C
ฉันเขียนฟังก์ชันที่มีอาร์เรย์เป็นอาร์กิวเมนต์และเรียกใช้โดยการส่งผ่านค่าอาร์เรย์ดังนี้ void arraytest(int a[]) { // changed the array a a[0]=a[0]+a[1]; a[1]=a[0]-a[1]; a[0]=a[0]-a[1]; } void main() { int arr[]={1,2}; printf("%d \t %d",arr[0],arr[1]); arraytest(arr); printf("\n After calling fun arr contains: %d\t %d",arr[0],arr[1]); } สิ่งที่ฉันพบคือแม้ว่าฉันจะเรียกarraytest()ใช้ฟังก์ชันโดยการส่งผ่านค่า แต่สำเนาต้นฉบับint arr[]ก็เปลี่ยนไป คุณช่วยอธิบายได้ไหมว่าทำไม?

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