可変長の引数を取るメソッド

(サンプル一覧を表示する)

可変長の引数を取るメソッドのテストをしてみました。

可変長の引数が取れると、C 言語の printf のようなメソッドが作りやすくなります。
引数の 2 番目以降を単に省略したい場合は、デフォルト値付きの引数リストを定義してください。
Flash の実行画面
可変長の引数を取るメソッド

Flashプレーヤーが入っていないか、JavaScriptが無効になっているようです。

Get Adobe Flash player

可変長の引数を取るメソッド

ソースコード

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	
	/**
	 * 可変長の引数を取るメソッドのサンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{
		/**
		 * 結果表示用テキストフィールド
		 */
		private var textField:TextField;
		
		/**
		 * コンストラクタ
		 */
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化メソッド
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			// テキストフィールドの準備
			textField = new TextField();
			textField.width = 310;
			textField.height = 230;
			textField.x = 5;
			textField.y = 5;
			addChild(textField);
			
			// テスト用の変数を準備
			var i:int = 1;
			var n:Number = 0.1;
			var xml:XML = new XML();
			
			// テスト用メソッドを呼び出す
			testFunction("test", 	// [0] : String
						 i, 		// [1] : int
						 n,			// [2] : Number
						 true, 		// [3] : Boolean
						 init, 		// [4] : Function
						 xml, 		// [5] : XML
						 this);		// [6] : Sprite
		}
		
		/**
		 * 可変長の引数を取るメソッド
		 * @param	... args
		 */
		private function testFunction(... args):void
		{
			// 要素を 1 つずつ巡回して、 typeof で返される、アバウトな型名を表示する。
			// 特定の型と一致するかテストする時は、
			// if (args[i] is String)
			// のような書き方をする。
			for (var i:uint = 0; i < args.length; i++) {
				textField.appendText("引数[" + i.toString() + "] の型は ");
				textField.appendText(typeof args[i]);
				textField.appendText("\n");
			}
		}

	}
	
}
		

参照

外部リンク