คำถามติดแท็ก variadic-functions

ฟังก์ชันเป็นตัวแปรหากสามารถยอมรับจำนวนอาร์กิวเมนต์ได้ นั่นคือความแข็งแกร่งของมันไม่ได้รับการแก้ไข ตัวย่อ "varargs" มักใช้เพื่ออ้างถึงฟังก์ชันประเภทนี้

6
หมายเลขตัวแปร Java หรืออาร์กิวเมนต์สำหรับเมธอด
เป็นไปได้ไหมที่จะประกาศเมธอดที่อนุญาตพารามิเตอร์จำนวนตัวแปร? สัญลักษณ์ที่ใช้ในคำจำกัดความที่ระบุว่าวิธีการควรอนุญาตให้มีจำนวนตัวแปรของพารามิเตอร์คืออะไร? คำตอบ: varargs

9
วิธีส่งอาร์กิวเมนต์จำนวนตัวแปรไปยังฟังก์ชัน PHP
ฉันมีฟังก์ชัน PHP ที่รับอาร์กิวเมนต์จำนวนตัวแปร (โดยใช้func_num_args()และfunc_get_args()) แต่จำนวนอาร์กิวเมนต์ที่ฉันต้องการส่งผ่านฟังก์ชันนั้นขึ้นอยู่กับความยาวของอาร์เรย์ มีวิธีการเรียกใช้ฟังก์ชัน PHP ด้วยอาร์กิวเมนต์กี่ตัวแปรหรือไม่?

9
ส่งผ่านอาร์กิวเมนต์ตัวแปรไปยังฟังก์ชันอื่นที่ยอมรับรายการอาร์กิวเมนต์ตัวแปร
ดังนั้นฉันมี 2 ฟังก์ชันที่ทั้งสองมีอาร์กิวเมนต์ที่คล้ายกัน void example(int a, int b, ...); void exampleB(int b, ...); ตอนนี้exampleเรียกexampleBแต่ฉันจะส่งผ่านตัวแปรในรายการอาร์กิวเมนต์ตัวแปรโดยไม่แก้ไขได้อย่างไรexampleB(เนื่องจากมีการใช้ที่อื่นแล้วด้วย)

3
Java“ params” ใน method signature?
ใน C # หากคุณต้องการให้เมธอดมีจำนวนพารามิเตอร์ที่ไม่แน่นอนคุณสามารถสร้างพารามิเตอร์สุดท้ายในเมธอดซิกเนเจอร์ a paramsเพื่อให้เมธอดพารามิเตอร์ดูเหมือนอาร์เรย์ แต่อนุญาตให้ทุกคนที่ใช้เมธอดส่งผ่านพารามิเตอร์ประเภทนั้นให้ได้มากที่สุด ตามที่ผู้โทรต้องการ ฉันค่อนข้างแน่ใจว่า Java รองรับพฤติกรรมที่คล้ายกัน แต่ฉันหาวิธีทำไม่ได้

2
ไม่เลือก Java: ไม่ได้เลือกการสร้างอาร์เรย์ทั่วไปสำหรับพารามิเตอร์ varargs
ฉันได้ตั้งค่า Netbeans ให้แสดงคำเตือนที่ไม่ได้ตรวจสอบในโค้ด Java ของฉัน แต่ฉันไม่เข้าใจข้อผิดพลาดในบรรทัดต่อไปนี้: private List<String> cocNumbers; private List<String> vatNumbers; private List<String> ibans; private List<String> banks; ... List<List<String>> combinations = Utils.createCombinations(cocNumbers, vatNumbers, ibans); ให้: [unchecked] unchecked generic array creation for varargs parameter of type List<String>[] แหล่งที่มาของวิธีการ: /** * Returns a list of all possible combinations of the entered …

1
Haskell printf ทำงานอย่างไร
ความปลอดภัยของ Haskell ไม่เป็นสองรองใครในภาษาที่พิมพ์ขึ้นเอง แต่มีเวทมนตร์ลึก ๆ เกิดขึ้นกับText.Printfที่ดูเหมือนจะเป็นประเภทว่องไว > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 ความมหัศจรรย์ที่อยู่เบื้องหลังสิ่งนี้คืออะไร? วิธีสามารถText.Printf.printfฟังก์ชั่นใช้การขัดแย้ง variadic เช่นนี้หรือไม่ เทคนิคทั่วไปที่ใช้ในการอนุญาตให้มีอาร์กิวเมนต์ตัวแปรใน Haskell คืออะไรและทำงานอย่างไร (หมายเหตุด้านข้าง: ความปลอดภัยบางประเภทหายไปเมื่อใช้เทคนิคนี้) > :t printf "%d\n" "foo" printf "%d\n" "foo" :: (PrintfType ([Char] -> t)) => t

6
การเรียกใช้เมธอด Java varargs ด้วยอาร์กิวเมนต์ null เดียว?
ถ้าฉันมีวิธี vararg Java foo(Object ...arg)และฉันเรียกfoo(null, null)ฉันมีทั้งสองอย่างarg[0]และarg[1]เป็นnulls แต่ถ้าผมเรียกfoo(null), argตัวเองเป็นโมฆะ เหตุใดจึงเกิดขึ้น จะเรียกfooเช่นนั้นfoo.length == 1 && foo[0] == nullได้trueอย่างไร?

1
C ++ 11: จำนวนพารามิเตอร์ฟังก์ชันแม่แบบตัวแปร?
ฉันจะนับจำนวนอาร์กิวเมนต์ของฟังก์ชันเทมเพลตตัวแปรได้อย่างไร กล่าวคือ: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } วิธีใดที่ดีที่สุดในการนำไปใช้number_of_argsในข้างต้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.