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

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

23
Java รองรับค่าพารามิเตอร์เริ่มต้นหรือไม่
ฉันเจอโค้ด Java บางตัวที่มีโครงสร้างต่อไปนี้: public MyParameterizedFunction(String param1, int param2) { this(param1, param2, false); } public MyParameterizedFunction(String param1, int param2, boolean param3) { //use all three parameters here } ฉันรู้ว่าใน C ++ ฉันสามารถกำหนดพารามิเตอร์เป็นค่าเริ่มต้น ตัวอย่างเช่น: void MyParameterizedFunction(String param1, int param2, bool param3=false); Java รองรับไวยากรณ์ประเภทนี้หรือไม่ มีเหตุผลใดบ้างที่ทำให้ไวยากรณ์สองขั้นตอนนี้เป็นที่ต้องการมากกว่า

30
ฟังก์ชั่นโอเวอร์โหลดใน Javascript - แนวทางปฏิบัติที่ดีที่สุด
วิธีที่ดีที่สุดในการปลอมฟังก์ชั่นการโอเวอร์โหลดใน Javascript คืออะไร? ฉันรู้ว่ามันเป็นไปไม่ได้ที่จะโอเวอร์โหลดฟังก์ชั่นใน Javascript เหมือนกับภาษาอื่น ๆ หากฉันต้องการฟังก์ชั่นที่มีการใช้สองครั้งfoo(x)และfoo(x,y,z)เป็นวิธีที่ดีที่สุด / ที่ต้องการ: ใช้ชื่ออื่นในตอนแรก ใช้อาร์กิวเมนต์ตัวเลือกเช่น y = y || 'default' ใช้จำนวนอาร์กิวเมนต์ การตรวจสอบประเภทของข้อโต้แย้ง หรืออย่างไร

12
พารามิเตอร์เพิ่มเติมใน Go?
สามารถมีพารามิเตอร์เสริมได้หรือไม่ หรือฉันสามารถกำหนดฟังก์ชั่นสองอย่างที่มีชื่อเดียวกันและจำนวนอาร์กิวเมนต์ต่างกันได้หรือไม่
464 go  overloading 

21
ความแตกต่างกับการเอาชนะการบรรทุกเกินพิกัด
ในแง่ของ Java เมื่อมีคนถามว่า: ความแตกต่างคืออะไร? จะบรรทุกเกินพิกัดหรือเอาชนะจะเป็นคำตอบที่ยอมรับได้หรือไม่? ฉันคิดว่ามันมีอะไรมากกว่านั้น หากคุณมีคลาสฐานนามธรรมที่กำหนดวิธีการที่ไม่มีการใช้งานและคุณกำหนดวิธีการนั้นในคลาสย่อยนั้นจะยังคงทับซ้อนกัน? ฉันคิดว่าการโหลดมากเกินไปไม่ใช่คำตอบที่ถูกต้องแน่นอน

17
คุณสามารถโอเวอร์โหลดคอนโทรลเลอร์ใน ASP.NET MVC ได้หรือไม่?
ฉันอยากรู้ว่าคุณสามารถโอเวอร์โหลดวิธีการควบคุมใน ASP.NET MVC ได้หรือไม่ เมื่อใดก็ตามที่ฉันพยายามฉันได้รับข้อผิดพลาดด้านล่าง ทั้งสองวิธียอมรับข้อโต้แย้งที่แตกต่างกัน นี่เป็นสิ่งที่ไม่สามารถทำได้ใช่ไหม คำขอปัจจุบันสำหรับการกระทำ 'MyMethod' ในประเภทตัวควบคุม 'MyController' นั้นไม่ชัดเจนระหว่างวิธีการดำเนินการต่อไปนี้:

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

6
ฟังก์ชัน TypeScript โอเวอร์โหลด
ส่วนที่ 6.3 ของสเป็คภาษา TypeScript พูดถึงเกี่ยวกับฟังก์ชั่นการโอเวอร์โหลดและให้ตัวอย่างที่เป็นรูปธรรมเกี่ยวกับวิธีการใช้งาน อย่างไรก็ตามถ้าฉันลองทำสิ่งนี้: export class LayerFactory { constructor (public styleFactory: Symbology.StyleFactory) { } createFeatureLayer (userContext : Model.UserContext, mapWrapperObj : MapWrapperBase) : any { throw "not implemented"; } createFeatureLayer(layerName : string, style : any) : any { throw "not implemented"; } } ฉันได้รับข้อผิดพลาดของคอมไพเลอร์ที่ระบุตัวระบุที่ซ้ำกันถึงแม้ว่าพารามิเตอร์ฟังก์ชั่นจะเป็นประเภทที่แตกต่างกัน แม้ว่าฉันจะเพิ่มพารามิเตอร์เพิ่มเติมให้กับฟังก์ชั่น createFeatureLayer ที่สองฉันยังคงได้รับข้อผิดพลาดของคอมไพเลอร์ ความคิดโปรด

14
วิธีการทำให้ฟังก์ชั่นโอเวอร์โหลดใน C เป็นอย่างไร?
มีวิธีใดบ้างที่จะทำให้เกิดการโอเวอร์โหลดของฟังก์ชันใน C? ฉันกำลังมองหาฟังก์ชั่นง่าย ๆ ที่จะโหลดมากเกินไปเช่น foo (int a) foo (char b) foo (float c , int d) ฉันคิดว่าไม่มีทางตรงไปข้างหน้า; ฉันกำลังมองหาวิธีแก้ไขหากมีอยู่
240 c  overloading 

15
ฟังก์ชัน Python โอเวอร์โหลด
ฉันรู้ว่า Python ไม่รองรับการบรรทุกเกินพิกัด แต่ฉันพบปัญหาที่ฉันไม่สามารถแก้ไขได้ด้วยวิธี Pythonic ที่ดี ฉันกำลังสร้างเกมที่ตัวละครต้องยิงกระสุนหลากหลายแบบ แต่ฉันจะเขียนฟังก์ชั่นต่าง ๆ เพื่อสร้างกระสุนได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันมีฟังก์ชั่นที่สร้างสัญลักษณ์แสดงหัวข้อย่อยเดินทางจากจุด A ถึง B ด้วยความเร็วที่กำหนด ฉันจะเขียนฟังก์ชั่นเช่นนี้: def add_bullet(sprite, start, headto, speed): ... Code ... แต่ฉันต้องการที่จะเขียนฟังก์ชั่นอื่น ๆ สำหรับการสร้างกระสุนเช่น: def add_bullet(sprite, start, direction, speed): def add_bullet(sprite, start, headto, spead, acceleration): def add_bullet(sprite, script): # For bullets that are controlled by a script …

8
ลบ Integer ออกจากรายการ <Integer> อย่างถูกต้อง
นี่เป็นข้อผิดพลาดที่ดีที่ฉันเพิ่งพบ พิจารณารายการจำนวนเต็ม: List&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;(); list.add(5); list.add(6); list.add(7); list.add(1); มีการเดาอะไรเกี่ยวกับสิ่งที่เกิดขึ้นเมื่อคุณดำเนินการlist.remove(1)? เกี่ยวกับlist.remove(new Integer(1))อะไร สิ่งนี้อาจทำให้เกิดข้อบกพร่องที่น่ารังเกียจ อะไรคือวิธีที่เหมาะสมในการแยกความแตกต่างระหว่างremove(int index)ซึ่งเอาองค์ประกอบจากดัชนีที่กำหนดและremove(Object o)ที่เอาองค์ประกอบโดยอ้างอิงเมื่อจัดการกับรายการของจำนวนเต็ม? ประเด็นหลักที่ต้องพิจารณาที่นี่คือหนึ่งใน@Nikita ที่กล่าวถึง - การจับคู่พารามิเตอร์ที่แน่นอนจะมีความสำคัญเหนือกว่ามวยอัตโนมัติ

10
ฟังก์ชั่นการโอเวอร์โหลดของ PHP
มาจากพื้นหลัง C ++;) ฉันจะโอเวอร์โหลดฟังก์ชัน PHP ได้อย่างไร นิยามฟังก์ชันหนึ่งถ้ามีอาร์กิวเมนต์ใด ๆ และอีกอันถ้าไม่มีอาร์กิวเมนต์? เป็นไปได้ใน PHP? หรือฉันควรใช้ถ้าอื่นเพื่อตรวจสอบว่ามีพารามิเตอร์ใด ๆ ที่ส่งผ่านจาก $ _GET และ POST ?? และเกี่ยวข้องกับพวกเขา?

15
ฉันจะใช้วิธีการโอเวอร์โหลดใน Python ได้อย่างไร
ฉันพยายามใช้วิธีการมากไปใน Python: class A: def stackoverflow(self): print 'first method' def stackoverflow(self, i): print 'second method', i ob=A() ob.stackoverflow(2) แต่ผลลัพธ์คือsecond method 2; ในทำนองเดียวกัน: class A: def stackoverflow(self): print 'first method' def stackoverflow(self, i): print 'second method', i ob=A() ob.stackoverflow() จะช่วยให้ Traceback (most recent call last): File "my.py", line 9, in &lt;module&gt; …

7
ทำไมคอมไพเลอร์ Scala ไม่อนุญาตให้โอเวอร์โหลดวิธีที่มีอาร์กิวเมนต์เริ่มต้น
ในขณะที่อาจมีกรณีที่ถูกต้องซึ่งวิธีการบรรทุกเกินพิกัดดังกล่าวอาจไม่ชัดเจนทำไมคอมไพเลอร์ไม่อนุญาตรหัสที่ไม่ชัดเจนในเวลารวบรวมหรือเวลาทำงาน? ตัวอย่าง: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = 42) = a + b // This fails, too. Even if there is no position in the argument list, // where the types are the same. def foo(a: Int) …

7
วิธีการโอเวอร์โหลดสำหรับอาร์กิวเมนต์ว่าง
ฉันได้เพิ่มสามวิธีพร้อมพารามิเตอร์: public static void doSomething(Object obj) { System.out.println("Object called"); } public static void doSomething(char[] obj) { System.out.println("Array called"); } public static void doSomething(Integer obj) { System.out.println("Integer called"); } เมื่อผมโทรdoSomething(null)แล้วคอมไพเลอร์โยนข้อผิดพลาดเป็นวิธีการที่ไม่ชัดเจน ดังนั้นเป็นปัญหาเพราะIntegerและchar[]วิธีการหรือIntegerและObjectวิธีการ?
138 java  oop  null  overloading 


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