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

คำสั่งส่งคืนทำให้การดำเนินการออกจากรูทีนย่อยปัจจุบันและดำเนินการต่อที่จุดในโค้ดทันทีหลังจากที่รูทีนย่อยถูกเรียกซึ่งเรียกว่าที่อยู่ส่งคืน ที่อยู่ผู้ส่งคืนจะถูกบันทึกโดยปกติจะอยู่ใน call stack ของกระบวนการซึ่งเป็นส่วนหนึ่งของการดำเนินการเรียกรูทีนย่อย ภาษาโปรแกรมบางภาษาอนุญาตให้ฟังก์ชันระบุค่าที่ส่งกลับอย่างน้อยหนึ่งค่าเพื่อส่งกลับไปยังรหัสที่เรียกฟังก์ชัน

10
การคืนค่าʻundefined` หรือ `null` จากฟังก์ชัน javascript จะดีกว่าไหม
ฉันมีฟังก์ชั่นที่ฉันเขียนซึ่งโดยทั่วไปมีลักษณะดังนี้: function getNextCard(searchTerms) { // Setup Some Variables // Do a bunch of logic to pick the next card based on termed passed through what I'll call here as 'searchTerms' all of this logic is omitted because it's not important for my question. // ... // If we find a …

6
คีย์เวิร์ด 'return' คืออะไร?
เราใช้คำสั่งreturnเป็นทางเลือกในฟังก์ชัน JavaScript มันคือคีย์เวิร์ด แต่จริงๆแล้วประเภทของreturnมันคืออะไร ที่จริงฉันสับสนเมื่อเห็นตัวอย่าง: function add(a, b) { return ( console.log(a + b), console.log(arguments) ); } add(2, 2); เอาท์พุต: 4 [2, 2] ดังนั้นเราสามารถส่งนิพจน์ที่คั่นด้วยเครื่องหมายจุลภาคลงในreturnคำสั่ง นี่คือฟังก์ชั่นหรือไม่? เริ่มต้นด้วยสิ่งนี้เราสามารถเดาได้อย่างชัดเจนว่าท้ายที่สุดแล้วคำหลักทุกคำใน JavaScript เป็นฟังก์ชันหรือไม่? ฉันได้เขียนบล็อกเล็ก ๆ เพื่อเป็นส่วนสำคัญของการสนทนานี้ คุณอาจต้องการที่จะตรวจสอบที่นี่

7
เป็นวิธีที่ดีในการโทรกลับภายในโดยใช้คำสั่ง {} หรือไม่
Наэтотвопросестьответына กองมากเกินнарусском : Можнолиделатьвозвратизблокаใช้ () {}? ฉันแค่อยากรู้ว่าวิธีการโทรreturnภายในusingบล็อกนั้นปลอดภัย / ดีไหม สำหรับอดีต using(var scope = new TransactionScope()) { // my core logic return true; // if condition met else return false; scope.Complete(); } เรารู้ว่าในวงเล็บปีกกาสุดท้าย dispose()จะถูกเรียกออก แต่จะเกิดอะไรขึ้นในกรณีข้างต้นเนื่องจากreturnข้ามการควบคุมออกจากขอบเขตที่กำหนด (AFAIK) ... ฉันscope.Complete()ถูกเรียก? และสำหรับdispose()วิธีการของขอบเขต
93 c#  return  using 

11
การใช้วิธีกลับภายในโมฆะเป็นวิธีปฏิบัติที่ไม่ดีหรือไม่?
ลองนึกภาพรหัสต่อไปนี้: void DoThis() { if (!isValid) return; DoThat(); } void DoThat() { Console.WriteLine("DoThat()"); } สามารถใช้ return ภายใน void method ได้หรือไม่? มันมีโทษประสิทธิภาพหรือไม่? หรือจะดีกว่าถ้าเขียนโค้ดแบบนี้: void DoThis() { if (isValid) { DoThat(); } }
92 c#  return  void 

3
ฉันจะส่งคืนบางสิ่งก่อนจากบล็อกได้อย่างไร
หากฉันต้องการทำสิ่งนี้: collection.each do |i| return nil if i == 3 ..many lines of code here.. end ฉันจะได้รับผลกระทบนั้นอย่างไร? ฉันรู้ว่าฉันสามารถห่อทุกอย่างในบล็อกด้วยคำสั่ง big if ได้ แต่ฉันต้องการหลีกเลี่ยงการซ้อนกันถ้าเป็นไปได้ ตัวแบ่งจะไม่ทำงานที่นี่เพราะฉันไม่ต้องการหยุดการทำซ้ำขององค์ประกอบที่เหลือ
92 ruby  loops  return  break 


7
ใช้ 'return' ในบล็อก Ruby
ฉันกำลังพยายามใช้ Ruby 1.9.1 สำหรับภาษาสคริปต์แบบฝังเพื่อให้โค้ด "end-user" ถูกเขียนในบล็อก Ruby ปัญหาหนึ่งของเรื่องนี้คือฉันต้องการให้ผู้ใช้สามารถใช้คีย์เวิร์ด 'return' ในบล็อกได้ดังนั้นพวกเขาจึงไม่จำเป็นต้องกังวลเกี่ยวกับค่าส่งคืนโดยปริยาย ด้วยเหตุนี้สิ่งนี้จึงเป็นสิ่งที่ฉันต้องการจะทำได้: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } หากฉันใช้ 'return' ในตัวอย่างข้างต้นฉันจะได้รับ LocalJumpError ฉันทราบว่านี่เป็นเพราะบล็อกที่เป็นปัญหาเป็น Proc ไม่ใช่แลมบ์ดา รหัสจะใช้งานได้ถ้าฉันลบ 'return' ออก แต่ฉันอยากจะใช้ 'return' ในสถานการณ์นี้จริงๆ เป็นไปได้หรือไม่ ฉันได้ลองแปลงบล็อกเป็นแลมด้าแล้ว แต่ผลลัพธ์ก็เหมือนกัน

5
ผลตอบแทนหรือผลตอบแทนจากฟังก์ชั่นที่เรียกกำเนิด?
ฉันมีตัวกำเนิดgeneratorและวิธีการอำนวยความสะดวกให้กับมัน - generate_all. def generator(some_list): for i in some_list: yield do_something(i) def generate_all(): some_list = get_the_list() return generator(some_list) # <-- Is this supposed to be return or yield? ควรgenerate_all returnหรือyield? ฉันต้องการให้ผู้ใช้ทั้งสองวิธีใช้เช่นกัน for x in generate_all() ควรเท่ากับ some_list = get_the_list() for x in generate(some_list)

2
ใน PHP: อะไรคือความแตกต่างระหว่าง "ผลตอบแทน", "ผลผลิต", "ผลผลิตจาก" และการผสมทั้งผลผลิตและผลตอบแทนในฟังก์ชั่นเดียวกัน?
ความแตกต่างระหว่างreturnและyieldดูเหมือนชัดเจนจนกระทั่งฉันพบว่ามีyield fromและความเป็นไปได้ที่จะรวมทั้งreturnและyieldในฟังก์ชั่นเดียวกัน! ความเข้าใจของฉันreturnคือว่าทุกอย่างหลังจากไม่ได้ดำเนินการใช่มั้ย อย่างไรก็ตาม: function generate(): iterable { return [1, 2, 3]; } foreach (generate() as $value) { echo $value; } ผลิต: "123" แต่ต่อไปนี้: function generate(): iterable { return [1, 2, 3]; yield; } foreach (generate() as $value) { echo $value; } ไม่ทำอะไรเลย! นั่นหมายความว่ามีการผลิตผลหรือไม่ นี่เป็นข้อบกพร่องหรือไม่?
10 php  return  generator  yield 

4
ทำไมส่งคืน NULL จาก main ()
บางครั้งฉันเห็นโคเดอร์ที่ใช้NULLเป็นค่าส่งคืนของmain()ในโปรแกรม C และ C ++ ตัวอย่างเช่น: #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } เมื่อฉันรวบรวมรหัส `นี้กับ gcc ฉันได้รับคำเตือน: คำเตือน: return ทำให้จำนวนเต็มจากตัวชี้โดยไม่ต้องส่ง [-Wint-conversion] ซึ่งมีความสมเหตุสมผลเนื่องจากแมโครNULLจะถูกขยายไปและค่าตอบแทนของหลักจะเป็นประเภท(void*) 0int เมื่อฉันสร้างโปรแกรม C ++ สั้น ๆ ของ: #include <iostream> using namespace std; int main() { cout << "HelloWorld!"; return NULL; } และคอมไพล์ด้วย g ++ ฉันจะได้รับคำเตือนที่เทียบเท่า: คำเตือน: …
10 c++  c  null  return  return-value 

4
ประเภทผลตอบแทนของ“ ผลตอบแทน” คือ C # [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 เดือนที่ผ่านมา ฉันกำลังสร้างแอปพลิเคชันคอนโซลและฉันมี "เมนู" ซึ่งผู้ใช้สามารถป้อนข้อมูลเพื่อสร้างวัตถุบุคคลใหม่ ต่อไปนี้เป็นวิธีการภายใน Write("Please enter the first name: ", false); string fName = Console.ReadLine().ToUpper(); Write("Please enter the middle initial: ", false); string mInitial = Console.ReadLine().ToUpper(); Write("Please enter the last name: ", false); string lName = Console.ReadLine().ToUpper(); ชอบมาก ฉันต้องการให้ผู้ใช้สามารถออกจากวิธีการได้ตลอดเวลาหากพวกเขาตัดสินใจว่าพวกเขาไม่ต้องการสร้างคนใหม่ ดังนั้นฉันต้องการสร้างวิธีการใหม่ที่เรียกว่า "CheckExit" และหากพวกเขาพิมพ์ "EXIT" …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.