Hãy nói rằng tôi có lớp học này:Flex Làm thế nào để gọi một chức năng với một số biến số tham số?
package{
import flash.display.Sprite;
public class Main extends Sprite{
public function Main(){
trace(getAverage(1,2,3));
trace(getAverage(1,2,3,4));
trace(getAverage(1,2,3,4,5));
}
public function getAverage (...numbers) {
var total = 0;
for (var i = 0; i < numbers.length; i++) {
total += numbers [i];
}
return total/numbers.length;
}
}
}
Làm thế nào để hoàn thành "ngược" này? Cụ thể, làm cách nào tôi có thể CALL 'getAverage' với một số động lực của những người thay thế?
Ví dụ, nếu tôi muốn làm một cái gì đó NHƯ:
var r:int=Math.random()*6;
var a:Array=new Array();
for (i:int=0;i<r;i++) {
a[i]=Math.random()*22;
}
// Now I have 'r' Number Of Parameters Stored In 'a'
// How Do I Call getAverage, with all the values in 'a'??
// getAverage(a) isn't right, is it?
// I'm looking for something similar to getAverage(a[0],a[1],a[...]);
var av:Number=getAverage(???);
Những gì tôi muốn biết là nếu tôi có một chức năng mà phải mất một số biến của tham số, đó là tuyệt vời, nhưng làm thế nào có thể TÔI GỌI CNTT với một số lượng đối số thay đổi, khi số đó không được biết trong thời gian chạy? Có thể nó là không thể ... Tôi chỉ không chắc chắn, vì 'callLater' dường như có thể lấy một mảng và tạo ra một số động các thông số từ nó bằng cách nào đó ...
LƯU Ý: Câu trả lời chỉ bao gồm "Tại sao bạn muốn làm điều này?", Sẽ được giảm giá.
P.S. Điều này KHÔNG phải về tính trung bình! I REALIZE Có cách đơn giản để làm tất cả điều này! (Tôi chỉ có thể viết getAverage để chấp nhận một mảng duy nhất làm tham số duy nhất của nó) Phía trên chỉ là một VÍ DỤ để minh họa cho câu hỏi của tôi. LÀM THẾ NÀO ĐỂ PASS SỐ SỐ ĐỘNG VẬT CỦA PARAMETERS TO MỘT CHỨC NĂNG?
Thay đổi hàm để chấp nhận một mảng thay thế? – Cameron
Điều đó giúp tôi vượt qua một số tham số động như thế nào? Điều đó đòi hỏi phải thay đổi nguyên mẫu của hàm getAverage, nó sẽ đánh bại toàn bộ mục đích của câu hỏi của tôi. Tôi nhận ra tôi chỉ có thể vượt qua một mảng. Lần sau đọc câu hỏi xin vui lòng trước khi bình luận. – Joshua
Ví dụ đầu tiên của bạn dường như trả lời những gì bạn muốn khi bạn chuyển một số tham số động vào một hàm.Đó là exacly những gì còn lại paramter là cho. http://www.sephiroth.it/weblog/archives/2006/06/actionscript_3_rest_parameter.php – Allan