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

ค่าส่งคืนเป็นผลลัพธ์ของการประเมินคำสั่งส่งคืน

24
การคืนค่า null ออกแบบไม่ดีหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันได้ยินเสียงพูดว่าการตรวจสอบค่า Null ที่คืนกลับมาจากวิธีการคือการออกแบบที่ไม่ดี ฉันต้องการฟังเหตุผลบางอย่างสำหรับเรื่องนี้ pseudocode: variable x = object.method() if (x is null) do something
127 oop  null  return-value 

5
การส่งคืนค่าจากฟังก์ชันที่เรียกในเชลล์สคริปต์
ฉันต้องการส่งคืนค่าจากฟังก์ชันที่เรียกในเชลล์สคริปต์ บางทีฉันอาจไม่มีไวยากรณ์ ฉันลองใช้ตัวแปรส่วนกลาง แต่นั่นก็ไม่ได้ผล รหัสคือ: lockdir="somedir" test() { retval="" if mkdir "$lockdir" then # Directory did not exist, but it was created successfully echo >&2 "successfully acquired lock: $lockdir" retval="true" else echo >&2 "cannot acquire lock, giving up on $lockdir" retval="false" fi return retval } retval=test() if [ "$retval" == …

8
ฉันควรส่งคืน EXIT_SUCCESS หรือ 0 จาก main ()?
เป็นคำถามง่ายๆ แต่ฉันเห็นคำตอบที่ขัดแย้งกันอยู่เรื่อย ๆ : กิจวัตรหลักของโปรแกรม C ++ ควรกลับมา0หรือEXIT_SUCCESSไม่? #include <cstdlib> int main(){return EXIT_SUCCESS;} หรือ int main(){return 0;} เป็นสิ่งเดียวกันหรือไม่? ควรEXIT_SUCCESSใช้กับexit()? ฉันคิดว่าEXIT_SUCCESSน่าจะเป็นตัวเลือกที่ดีกว่าเพราะซอฟต์แวร์อื่น ๆ อาจต้องการให้ศูนย์เป็นความล้มเหลว แต่ฉันก็ได้ยินมาว่าถ้าคุณส่งคืน0คอมไพเลอร์ก็สามารถเปลี่ยนเป็นค่าอื่นได้
125 c++  c  return-value  main 

8
จะเพิกเฉยต่อค่าส่งคืนบางค่าของฟังก์ชัน MATLAB ได้อย่างไร?
เป็นไปได้หรือไม่ที่จะได้รับค่าส่งคืน 'ที่ n' จากฟังก์ชันโดยไม่ต้องสร้างตัวแปรจำลองสำหรับn-1ค่าที่ส่งคืนทั้งหมดก่อนหน้านั้น สมมติว่าฉันมีฟังก์ชันต่อไปนี้ใน MATLAB: function [a,b,c,d] = func() a = 1; b = 2; c = 3; d = 4; ตอนนี้สมมติว่าฉันสนใจเฉพาะค่าตอบแทนที่สามเท่านั้น สิ่งนี้สามารถทำได้โดยการสร้างตัวแปรจำลองหนึ่งตัว: [dummy, dummy, variableThatIWillUse, dummy] = func; clear dummy; แต่ผมคิดว่านี่เป็นชนิดของน่าเกลียด ฉันคิดว่าคุณอาจจะทำสิ่งใดสิ่งหนึ่งต่อไปนี้ได้ แต่คุณทำไม่ได้: [_, _, variableThatIWillUse, _] = func; [, , variableThatIWillUse, ] = func; variableThatIWillUse = func(3); …


5
ส่งคืนวัตถุ Void
อะไรคือวิธีที่ถูกต้องในการส่งคืนVoidประเภทเมื่อไม่ใช่แบบดั้งเดิม เช่น. ปัจจุบันฉันใช้ null ดังต่อไปนี้ interface B<E>{ E method(); } class A implements B<Void>{ public Void method(){ // do something return null; } }

5
หลายค่าในบริบทค่าเดียว
เนื่องจากข้อผิดพลาดในการจัดการใน Go ฉันมักจะจบลงด้วยฟังก์ชันหลายค่า จนถึงตอนนี้วิธีที่ฉันจัดการมันยุ่งมากและฉันกำลังมองหาแนวทางปฏิบัติที่ดีที่สุดในการเขียนโค้ดที่สะอาดกว่า สมมติว่าฉันมีฟังก์ชันต่อไปนี้: type Item struct { Value int Name string } func Get(value int) (Item, error) { // some code return item, nil } ฉันจะกำหนดตัวแปรใหม่ให้สวยitem.Valueหรูได้อย่างไร ก่อนที่จะแนะนำการจัดการข้อผิดพลาดฟังก์ชันของฉันเพิ่งกลับมาitemและฉันสามารถทำได้: val := Get(1).Value ตอนนี้ฉันทำสิ่งนี้: item, _ := Get(1) val := item.Value ไม่มีวิธีเข้าถึงตัวแปรที่ส่งคืนแรกโดยตรงหรือไม่?

8
วิธีที่มีประสิทธิภาพในการคืนค่า std :: vector ใน c ++
จำนวนข้อมูลที่ถูกคัดลอกเมื่อส่งคืน std :: vector ในฟังก์ชันและการเพิ่มประสิทธิภาพนั้นจะใหญ่เพียงใดในการวาง std :: vector ใน free-store (บน heap) และส่งกลับตัวชี้แทนนั่นคือ: std::vector *f() { std::vector *result = new std::vector(); /* Insert elements into result */ return result; } มีประสิทธิภาพมากกว่า: std::vector f() { std::vector result; /* Insert elements into result */ return result; } เหรอ?


4
ทุกฟังก์ชัน Javascript ต้องคืนค่าหรือไม่
ฉันใช้ Netbeans เพื่อเพิ่มความคิดเห็นแบบมืออาชีพในแต่ละฟังก์ชันฉันเขียน ดังนั้นฉันจึงเริ่มต้นด้วย/**จากนั้นฉันก็กดEnterเพื่อให้ Netbeans ตอบสนองความคิดเห็นเริ่มต้นสำหรับฟังก์ชันต่อไป จนถึงตอนนี้ฉันใช้สิ่งนี้สำหรับภาษา PHP เท่านั้นและในกรณีนี้ Netbeans มักจะเพิ่ม@returns {type}ส่วนในรูปแบบความคิดเห็นเท่านั้นหากทำตามฟังก์ชัน PHP รวมreturnคำสั่งไว้จริงๆ เรียกว่า "โพรซีเดอร์" (ฟังก์ชันที่ไม่คืนค่าใด ๆ ) ส่วนนี้หายไป วันนี้ฉันลองทำสิ่งเดียวกันกับฟังก์ชัน Javascript และ Netbeans ได้เพิ่ม@returns {undefined}ส่วนในโครงร่างความคิดเห็นแม้ว่าฟังก์ชันต่อไปนี้จะไม่ส่งคืนอะไรเลย สิ่งนี้ทำให้ฉันสับสน Netbeans แนะนำแบบนี้หรือไม่ว่าทุกฟังก์ชั่น Javascript ต้องส่งคืนอะไร ฉันควรทำอย่างไรดี? ละเว้น (หรือลบ) ส่วนรูปแบบความคิดเห็นนั้นหรือทำตามคำแนะนำ (หากนี่เป็นคำแนะนำเลย) และเพิ่มreturn false;ในตอนท้ายของฟังก์ชันดังกล่าวแม้ว่าจะไม่มีประโยชน์สำหรับฉัน

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

8
ส่งคืนวัตถุ“ NULL” หากไม่พบผลการค้นหา
ฉันค่อนข้างใหม่กับ C ++ ดังนั้นฉันจึงมักจะออกแบบด้วย Java-isms จำนวนมากในขณะที่ฉันเรียนรู้ อย่างไรก็ตามใน Java ถ้าผมมีระดับด้วย 'ค้นหา' วิธีการที่จะกลับวัตถุTจากที่ตรงกับพารามิเตอร์ที่เฉพาะเจาะจงที่ผมจะกลับมาที่และวัตถุถ้าวัตถุไม่พบในคอลเลกชันที่ฉันจะกลับมาCollection< T > nullจากนั้นในฟังก์ชันการโทรของฉันฉันจะตรวจสอบif(tResult != null) { ... } ใน C ++ ฉันพบว่าฉันไม่สามารถคืนnullค่าได้หากไม่มีวัตถุ ฉันแค่ต้องการส่งคืน 'ตัวบ่งชี้' ประเภท T ที่แจ้งฟังก์ชันการโทรว่าไม่พบวัตถุ ฉันไม่ต้องการโยนข้อยกเว้นเพราะมันไม่ใช่สถานการณ์พิเศษจริงๆ นี่คือลักษณะของรหัสของฉันในตอนนี้: class Node { Attr& getAttribute(const string& attribute_name) const { //search collection //if found at i return attributes[i]; //if not found …

8
ฉันจะคืนค่าหลายค่าจากฟังก์ชันใน C ได้อย่างไร
ถ้าฉันมีฟังก์ชันที่สร้างผลลัพธ์intและผลลัพธ์stringฉันจะคืนค่าทั้งสองจากฟังก์ชันได้อย่างไร เท่าที่ฉันสามารถบอกได้ว่าฉันสามารถคืนค่าได้เพียงสิ่งเดียวเท่านั้นตามที่กำหนดโดยประเภทที่อยู่ข้างหน้าชื่อฟังก์ชัน
89 c  return-value 

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